#include<stdio.h>
#include<ctype.h>
#include<string.h>
FILE*fin=fopen("struti.in","r");
FILE*fout=fopen("struti.out","w");
#define nm 1002
#define inf 10000
#define si short int
si a[nm][nm],deql[nm][nm],deqh[nm][nm],indl[nm][nm],indh[nm][nm];
si dl[nm],dh[nm],il[nm],ih[nm],stl[nm],sth[nm],drl[nm],drh[nm];
si n,m,p;
int ans,nr, ind;
char buf[6000];
// hl==1->max deque
// hl==0->min deque
inline int readn()
{
int ans=0;
while (isdigit(buf[ind]))
{
ans=ans*10+buf[ind]-'0';
++ind;
}
++ind;
return ans;
}
inline void ins1(si wh[],si wi[],si &st,si &dr,si ind,si elem)
{
while(elem>wh[dr]&&dr>=st) dr--;
dr++;
wh[dr]=elem;
wi[dr]=ind;
}
inline void ins0(si wh[],si wi[],si &st,si &dr,si ind,si elem)
{
while(elem<wh[dr]&&dr>=st) dr--;
dr++;
wh[dr]=elem;
wi[dr]=ind;
}
void solve(si lines,si columns)
{
si j,i,frontl,fronth,backl,backh;
for(j=1;j<=m;j++)
{
stl[j]=1;
drl[j]=0;
sth[j]=1;
drh[j]=0;
for(i=1;i<lines;i++)
{
ins0(deql[j],indl[j],stl[j],drl[j],i,a[i][j]);
ins1(deqh[j],indh[j],sth[j],drh[j],i,a[i][j]);
}
}
for(i=lines;i<=n;i++)
{
for(j=1;j<=m;j++)
{
ins0(deql[j],indl[j],stl[j],drl[j],i,a[i][j]);
ins1(deqh[j],indh[j],sth[j],drh[j],i,a[i][j]);
if(indl[j][stl[j]]<=i-lines) stl[j]++;
if(indh[j][sth[j]]<=i-lines) sth[j]++;
}
frontl=1;backl=0;
fronth=1;backh=0;
for(j=1;j<=m;j++)
{
ins0(dl,il,frontl,backl,j,deql[j][stl[j]]);
ins1(dh,ih,fronth,backh,j,deqh[j][sth[j]]);
if(il[frontl]<=j-columns) frontl++;
if(ih[fronth]<=j-columns) fronth++;
if(j>=columns) if(ans>dh[fronth]-dl[frontl])
{
ans=dh[fronth]-dl[frontl];
nr=1;
}
else if(ans==dh[fronth]-dl[frontl]) nr++;
}
}
}
int main()
{
si i,j,dx,dy;
fscanf(fin,"%hd%hd%hd\n",&n,&m,&p);
for(i=1;i<=n;i++)
{
fgets(buf,6000,fin);
ind=0;
for(j=1;j<=m;j++)
{
a[i][j]=readn();
}
}
for(i=1;i<=p;i++)
{
fscanf(fin,"%hd%hd",&dx,&dy);
ans=inf;
nr=0;
if(dx<=n&&dy<=m) solve(dx,dy);
if(dx!=dy) if(dy<=n&&dx<=m) solve(dy,dx);
fprintf(fout,"%d %d\n",ans,nr);
}
fclose(fin);
fclose(fout);
return 0;
}