#include <bits/stdc++.h>
using namespace std;
long long modI(long long a, long long m);
long long gcd(long long a, long long b);
long long powM(long long x, long long y, long long m);
long long swap(long long a, long long b);
void swap(long long& a, long long& b) {
  long long tp = a;
  a = b;
  b = tp;
}
long long gcd(long long x, long long y) {
  if (x == 0) return y;
  return gcd(y % x, x);
}
long long powM(long long x, long long y, long long m) {
  long long ans = 1, r = 1;
  x %= m;
  while (r > 0 && r <= y) {
    if (r & y) {
      ans *= x;
      ans %= m;
    }
    r <<= 1;
    x *= x;
    x %= m;
  }
  return ans;
}
long long modI(long long a, long long m) {
  long long m0 = m, y = 0, x = 1;
  if (m == 1) return 0;
  while (a > 1) {
    long long q = a / m;
    long long t = m;
    m = a % m;
    a = t;
    t = y;
    y = x - q * y;
    x = t;
  }
  if (x < 0) x += m0;
  return x;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(0);
  int h, w, tt;
  cin >> h >> w >> tt;
  vector<pair<int, int>> que;
  vector<string> s(h);
  for (int i = 0; i < h; i++) cin >> s[i];
  int when[h][w];
  for (int i = 0; i < h; i++)
    for (int j = 0; j < w; j++) when[i][j] = -1;
  int di[4] = {-1, 0, 1, 0};
  int dj[4] = {0, -1, 0, 1};
  for (int i = 0; i < h; i++)
    for (int j = 0; j < w; j++)
      for (int dir = 0; dir < 4; dir++) {
        int ni = i + di[dir];
        int nj = j + dj[dir];
        if (ni >= 0 && nj >= 0 && ni < h && nj < w) {
          if (s[ni][nj] == s[i][j]) {
            que.emplace_back(i, j);
            when[i][j] = 0;
            break;
          }
        }
      }
  for (int b = 0; b < que.size(); b++) {
    int i = que[b].first;
    int j = que[b].second;
    for (int dir = 0; dir < 4; dir++) {
      int ni = i + di[dir];
      int nj = j + dj[dir];
      if (ni >= 0 && nj >= 0 && ni < h && nj < w) {
        if (when[ni][nj] == -1) {
          que.emplace_back(ni, nj);
          when[ni][nj] = when[i][j] + 1;
        }
      }
    }
  }
  while (tt--) {
    int i, j;
    long long p;
    cin >> i >> j >> p;
    --i;
    --j;
    if (when[i][j] == -1 || p < when[i][j] || (p - when[i][j]) % 2 == 0) {
      cout << s[i][j] << "\n";
    } else {
      cout << (char)(s[i][j] ^ 1) << "\n";
    }
  }
  return 0;
}
