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