#include<cstdio>
#include<vector>
#include<algorithm>
#include<functional>

#define fir first
#define sec second
#define mp make_pair
#define mt make_tuple
#define pub push_back
using namespace std;
typedef long long int llint;
const llint one = 1;
const llint big = (one<<33);
const llint ban = (big<<20);

int main(void){
	static int J[1001][1001]={0};
	static int O[1001][1001]={0};
	static int I[1001][1001]={0};
	int M,N,K,i,j,q,w,e,r;
	char c;
	scanf("%d %d",&M,&N);
	scanf("%d",&K);
	for(j=1;j<=M;j++){
		for(i=1;i<=N;i++){ 
			scanf(" %c",&c);
			if(c=='J'){J[j][i]++;}
			if(c=='O'){ O[j][i]++; }
			if(c=='I'){ I[j][i]++; }
		}
	}
	for(j=1;j<=M;j++){
		for(i=1;i<=N;i++){
			J[j][i]+=J[j][i-1];
			O[j][i]+=O[j][i-1];
			I[j][i]+=I[j][i-1];
		}
	}
	for(j=1;j<=M;j++){
		for(i=1;i<=N;i++){
			J[j][i]+=J[j-1][i];
			O[j][i]+=O[j-1][i];
			I[j][i]+=I[j-1][i];
		}
	}
	for(;K>0;K--){
		scanf("%d %d %d %d",&q,&w,&e,&r);
		q--;w--;
		printf("%d ",J[q][w]+J[e][r]-J[q][r]-J[e][w]);
		printf("%d ",O[q][w]+O[e][r]-O[q][r]-O[e][w]);
		printf("%d\n",I[q][w]+I[e][r]-I[q][r]-I[e][w]);
	}
	return 0;
}