#include<cstdio>
#include<cmath>
int n,i,j,x[12][1024][1024],kkt,y,k,a,t,o,b,l,v[]={1,2,4,8,16,32,64,128,256,512,1024,2048};
inline int maxim(int a, int b)
{
return (a<b?b:a);
}
int main()
{
freopen ("plantatie.in","rt",stdin);
freopen ("plantatie.out","wt",stdout);
scanf ("%d %d",&n,&t);
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
scanf("%d", &x[0][i][j]);
for (i=0;v[i]<n;i++);
i--;
kkt=i;
for (i=1;i<=kkt;i++)
for (j=1;j<=n;j++)
for (k=1;k<=n;k++)
{
y=(int)pow((double)2,i-1);
x[i][j][k]=maxim( maxim(x[i-1][j+y][k],x[i-1][j][k+y]) , maxim(x[i-1][j][k],x[i-1][j+y][k+y]) );
}
for (o=1;o<=t;o++)
{
scanf("%d %d %d",&a,&b,&l);
i=0;
while (v[i]<l)
i++;
i--;
y=(int)pow(2,i);
printf("%d\n",maxim( maxim(x[i][a][b],x[i][a+l-y][b]), maxim(x[i][a][b+l-y],x[i][a+l-y][b+l-y]) ));
}
return 0;
}