#include <bits/stdc++.h>
using namespace std;
int main() {
  int M, N, K, a, b, c, d;
  char f[1000][1000];
  int J[1000][1000], O[1000][1000], I[1000][1000];
  int rj, ro, ri;
  scanf("%d%d", &M, &N);
  scanf("%d", &K);
  for (int i = 0; i < M; i++) {
    scanf("%s", f[i]);
  }
  memset(J, 0, sizeof(J));
  memset(O, 0, sizeof(O));
  memset(I, 0, sizeof(I));
  for (int i = 0; i < M; i++) {
    for (int j = 0; j < N; j++) {
      if (i > 0) {
        J[i][j] += J[i - 1][j];
        O[i][j] += O[i - 1][j];
        I[i][j] += I[i - 1][j];
      }
      if (j > 0) {
        J[i][j] += J[i][j - 1];
        O[i][j] += O[i][j - 1];
        I[i][j] += I[i][j - 1];
        if (i > 0) {
          J[i][j] -= J[i - 1][j - 1];
          O[i][j] -= O[i - 1][j - 1];
          I[i][j] -= I[i - 1][j - 1];
        }
      }
      if (f[i][j] == 'J')
        J[i][j]++;
      else if (f[i][j] == 'O')
        O[i][j]++;
      else if (f[i][j] == 'I')
        I[i][j]++;
    }
  }
  for (int i = 0; i < K; i++) {
    scanf("%d%d%d%d", &a, &b, &c, &d);
    a--;
    b--;
    c--;
    d--;
    rj = J[c][d];
    ro = O[c][d];
    ri = I[c][d];
    if (b > 0) {
      rj -= J[c][b - 1];
      ro -= O[c][b - 1];
      ri -= I[c][b - 1];
    }
    if (a > 0) {
      rj -= J[a - 1][d];
      ro -= O[a - 1][d];
      ri -= I[a - 1][d];
      if (b > 0) {
        rj += J[a - 1][b - 1];
        ro += O[a - 1][b - 1];
        ri += I[a - 1][b - 1];
      }
    }
    printf("%d %d %d\n", rj, ro, ri);
  }
  return 0;
}
