#include <bits/stdc++.h>
using namespace std;
char map[1010][1010];
int sum[1010][1010][3] = {0};
int conv(char c) {
  if (c == 'J') {
    return 0;
  } else if (c == 'O') {
    return 1;
  } else if (c == 'I') {
    return 2;
  } else {
    return -1;
  }
}
void calc(int a, int b, int c, int d) {
  int ans[3];
  bool w = a > 1, ww = b > 1;
  for (int i = 0; i < 3; i++) {
    ans[i] = sum[c - 1][d - 1][i];
    if (w) ans[i] -= sum[a - 2][d - 1][i];
    if (ww) ans[i] -= sum[c - 1][b - 2][i];
    if (w || ww) ans[i] += sum[a - 1 - w][b - 1 - ww][i];
  }
  cout << ans[0] << " " << ans[1] << " " << ans[2] << endl;
}
int main() {
  int M, N, K;
  cin >> M >> N >> K;
  for (int i = 0; i < M; i++) {
    cin >> map[i];
  }
  for (int i = 0; i < M; i++) {
    for (int j = 0; j < N; j++) {
      for (int k = 0; k < 3; k++) {
        if (i > 0) {
          sum[i][j][k] += sum[i - 1][j][k];
          if (j > 0) sum[i][j][k] -= sum[i - 1][j - 1][k];
        }
        if (j > 0) {
          sum[i][j][k] += sum[i][j - 1][k];
        }
        if (k == conv(map[i][j])) {
          sum[i][j][k]++;
        }
      }
    }
  }
  for (int i = 0; i < K; i++) {
    int a, b, c, d;
    cin >> a >> b >> c >> d;
    calc(a, b, c, d);
  }
  return 0;
}
