#include <cstdio>
#include <functional>
#include <algorithm>
using namespace std;
#define FOR(i,a,b) for (i=a;i<=b;i++)
int log[600],put[50],a[501][501][10];
int main()
{
FILE *in,*out;
int n,m,x,y,z,i,j,k;
in=fopen("plantatie.in","r");
out=fopen("plantatie.out","w");
fscanf(in,"%d%d",&n,&m);
FOR(i,1,n)
FOR(j,1,n)
{
fscanf(in,"%d",&a[i][j][0]);
//printf("%d %d %d\n",a[i][j][0],i,j);
}
log[1]=0;
j=2;
k=1;
FOR(i,2,n)
{
if (i==j)
{
j*=2;
k++;
}
log[i]=k-1;
}
put[0]=1;
FOR(i,1,log[n])
put[i]=put[i-1]*2;
FOR(k,1,log[n])
{
FOR(i,1,n-put[k]+1)
FOR(j,1,n-put[k]+1)
a[i][j][k]=max(a[i][j][k-1],max(a[i+put[k-1]][j][k-1],max(a[i][j+put[k-1]][k-1],a[i+put[k-1]][j+put[k-1]][k-1])));
}
FOR(i,1,m)
{
fscanf(in,"%d%d%d",&x,&y,&z);
//printf("%d %d %d\n",x,y,z);
//out<<a[x][y][log[z]]<<a[x+z-putlog[z]]][y][log[z]]<<a[x][y+z-put[log[z]]][log[z]]<<a[x+z-put[log[z]]][y+z-put[log[z]]][log[z]]<<'\n';
fprintf(out,"%d\n",max(a[x][y][log[z]],max(a[x+z-put[log[z]]][y][log[z]],max(a[x][y+z-put[log[z]]][log[z]],a[x+z-put[log[z]]][y+z-put[log[z]]][log[z]]))));
}
fclose(in);
fclose(out);
return 0;
}