func_code_string: #include <bits/stdc++.h>   #pragma GCC optimize( O3 )   #pragma GCC target( sse4 )   using namespace std;   using ll = long long;   using vi = vector<int>;   using pii = pair<int, int>;   const int MX = 1e5 + 10;   template <typename T>   istream &operator>>(istream &is, vector<T> &v) {     for (auto i = begin(v); i != end(v); i++) is >> *i;     return is;   }   template <typename T>   ostream &operator<<(ostream &os, const vector<T> &v) {     for (auto i = begin(v); i != end(v); i++)       os << *i << (i == end(v) - 1 ?   n  :    );     return os;   }   template <typename T>   inline void rd(T &s) {     s = 0;     T t = 1, k = getchar();     for (; k <  0  || k >  9 ; k = getchar())       if (k ==  - ) t = -1;     for (; k >=  0  && k <=  9 ; k = getchar())       s = (s << 1) + (s << 3) + (k ^ 48);     s *= t;   }   ll n, m, t;   char a[1111][1111];   ll b[1111][1111];   ll dx[] = {0, 0, 1, -1}, dy[] = {1, -1, 0, 0};   void solve() {     cin >> n >> m >> t;     for (register ll i = 1, ilen = (ll)(n); i <= ilen; ++i) cin >> (a[i] + 1);     queue<pii> q;     for (register ll i = 1, ilen = (ll)(n); i <= ilen; ++i)       for (register ll j = 1, jlen = (ll)(m); j <= jlen; ++j) {         if (a[i][j] == a[i + 1][j] || a[i][j] == a[i - 1][j] ||             a[i][j] == a[i][j + 1] || a[i][j] == a[i][j - 1])           b[i][j] = 1, q.push(make_pair(i, j));         else           b[i][j] = 2e18;       }     while (q.size()) {       ll x = q.front().first, y = q.front().second;       q.pop();       for (register ll i = 0, ilen = (ll)(4); i < ilen; ++i) {         ll nx = x + dx[i], ny = y + dy[i];         if (nx >= 1 && nx <= n && ny >= 1 && ny <= m) {           if (b[x][y] + 1 < b[nx][ny]) q.push(make_pair(nx, ny));           b[nx][ny] = min(b[nx][ny], b[x][y] + 1);         }       }     }     while (t--) {       ll x, y, p;       cin >> x >> y >> p;       if (p >= b[x][y] && (p - b[x][y]) % 2 == 0) {         if (a[x][y] ==  1 )           cout <<  0  <<   n ;         else           cout <<  1  <<   n ;       } else         cout << a[x][y] <<   n ;     }   }   signed main() {     ll T = 1;     while (T--) {       solve();     }     return 0;   }   