#include<iostream>
#include<string>
#include<ctime>
using namespace std;
FILE*fin=fopen("struti.in","r");
FILE*fout=fopen("struti.out","w");
#define nm 1002
#define inf 10000
#define si short int
#define maxbuf 65536
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,ind2;
char buf[maxbuf];
// hl==1->max deque
// hl==0->min deque
inline void refbuf()
{
int rsp=fread(buf,1,maxbuf,fin);
if(rsp<maxbuf) buf[rsp]=0;
ind2=0;
}
inline si readnr()
{
si rsp=0;
one:
while(ind2<maxbuf && !isdigit(buf[ind2])) ++ind2;
if(ind2 == maxbuf)
{
refbuf();
goto one;
}
two:
while(ind2<maxbuf && isdigit(buf[ind2]))
{
rsp=rsp*10+buf[ind2]-'0';
++ind2;
}
if(ind2 == maxbuf)
{
refbuf();
goto two;
}
return rsp;
}
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()
{
int beg=clock();
si i,j,dx,dy;
refbuf();
n=readnr();
m=readnr();
p=readnr();
for(i=1;i<=n;++i)
for(j=1;j<=m;++j)
a[i][j]=readnr();
for(i=1;i<=p;i++)
{
dx=readnr();
dy=readnr();
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);
}
int end=clock();
//fprintf(fout,"%lf",(double)(end-beg)/CLOCKS_PER_SEC);
fclose(fin);
fclose(fout);
return 0;
}