#include<stdio.h>
#define infile "struti.in"
#define outfile "struti.out"
#define nmax 1001
#define smax (6*nmax)
#define inf ~(1<<31)
char s[smax]; //sirul in care parsam citirea
short int h[nmax][nmax]; //harta
short int min[nmax][nmax];
short int max[nmax][nmax];
int m,n; //numarul de linii, respectiv coloane
int q; //numarul de query-uri
int a,b; //valoarea minima, respectiv numarul de dreptunghiuri
void read()
{
int i,j,k;
scanf("%d %d %d\n",&m,&n,&q);
for(i=1;i<=m;i++)
{
fgets(s,smax,stdin);
for(j=1,k=0;j<=n;j++)
{
while(s[k]<'0' || s[k]>'9') k++;
while(s[k]>='0' && s[k]<='9') h[i][j]=h[i][j]*10+s[k++]-'0';
}
}
}
void deqmin(short int v[], short int min[], int n, int dist)
{
short int deqp[n+1];
short int deqv[n+1];
int st,dr,i;
for(i=1,st=1,dr=0;i<=n;i++)
{
while(st<=dr && deqv[dr]>=v[i]) dr--;
++dr; deqp[dr]=i; deqv[dr]=v[i];
if(i-deqp[st]+1>dist) st++;
if(i>=dist) min[i]=deqv[st];
}
}
void deqmax(short int v[], short int max[], int n, int dist)
{
short int deqp[n+1];
short int deqv[n+1];
int st,dr,i;
for(i=1,st=1,dr=0;i<=n;i++)
{
while(st<=dr && deqv[dr]<=v[i]) dr--;
++dr; deqp[dr]=i; deqv[dr]=v[i];
if(i-deqp[st]+1>dist) st++;
if(i>=dist) max[i]=deqv[st];
}
}
void count(int dx, int dy)
{
short int vmin[nmax];
short int vmax[nmax];
short int v[nmax];
int i,j;
//facem deq pe fiecare coloana
for(i=1;i<=n;i++)
{
//construim vectorul pentru aceasta coloana
for(j=1;j<=m;j++) v[j]=h[j][i];
//facem deq-ul pentru min si pentru max
deqmin(v,vmin,m,dx);
deqmax(v,vmax,m,dx);
//salvam valorile in matrici
for(j=1;j<=m;j++)
{
min[j][i]=vmin[j];
max[j][i]=vmax[j];
}
}
//facem deq pe fiecare linie
for(i=1;i<=m;i++)
{
//facem deq-ul pentru min si max
deqmin(min[i],min[i],n,dy);
deqmax(max[i],max[i],n,dy);
}
//acum verificam toate dreptunghiurile
for(i=dx;i<=m;i++)
for(j=dy;j<=n;j++)
if(max[i][j]-min[i][j]<a) a=max[i][j]-min[i][j],b=1;
else if(max[i][j]-min[i][j]==a) b++;
}
void solve()
{
int dx,dy;
while(q--)
{
a=inf,b=0;
scanf("%d %d\n",&dx,&dy);
if(dx==dy) count(dx,dy);
else
{
count(dx,dy);
count(dy,dx);
}
printf("%d %d\n",a,b);
}
}
int main()
{
freopen(infile,"r",stdin);
freopen(outfile,"w",stdout);
read();
solve();
fclose(stdin);
fclose(stdout);
return 0;
}