func_code_string: #include <bits/stdc++.h>   using namespace std;   typedef pair<int, int> pii;   typedef long long ll;   typedef unsigned long long ull;   template <typename T>   bool umax(T& a, const T& b) {     return b <= a ? false : (a = b, true);   }   template <typename T>   bool umin(T& a, const T& b) {     return b >= a ? false : (a = b, true);   }   template <typename T>   void V2A(T a[], const vector<T>& b) {     for (int i = 0; i < b.size(); i++) a[i] = b[i];   }   template <typename T>   void A2V(vector<T>& a, const T b[]) {     for (int i = 0; i < a.size(); i++) a[i] = b[i];   }   const double PI = acos(-1.0);   const int INF = 1e9 + 7;   const int maxn = 2e3 + 7;   bool plot[maxn][maxn];   int r[maxn][maxn];   int n, m, k;   int check(int row, int col) {     if (col >= 0 && col < m) return true;     return false;   }   int main() {     cin >> n >> m >> k;     for (int i = 0; i < k; i++) {       int x, y;       scanf( %d%d , &x, &y);       x--;       y--;       if (!plot[x][y]) {         printf( %d %d n , x + 1, y + 1);         plot[x][y] = true;         continue;       }       for (int d = 1; d <= 3; d++) {         int Max = min(n, x + d + 1);         for (int row = max(0, x - d); row < Max; row++) {           int t = d - abs(x - row), col1 = y - t, col2 = y + t;           if (check(row, col1)) umax(r[x][y], r[row][col1] - d);           if (check(row, col2)) umax(r[x][y], r[row][col2] - d);         }       }       for (int d = r[x][y] + 1;; d++) {         int Max = min(n, x + d + 1);         bool ok = false;         for (int row = max(0, x - d); row < Max; row++) {           int t = d - abs(x - row), col1 = y - t, col2 = y + t;           if (check(row, col1) && !plot[row][col1]) {             ok = true;             printf( %d %d n , row + 1, col1 + 1);             plot[row][col1] = true;             break;           }           if (check(row, col2) && !plot[row][col2]) {             ok = true;             printf( %d %d n , row + 1, col2 + 1);             plot[row][col2] = true;             break;           }         }         if (ok) {           r[x][y] = d - 1;           break;         }       }     }     return 0;   }   