#include <stdio.h>
#define pt(i) (1<<(i))
#define pmax 9
#define nmax 512
#define FOR(i,s,d) for(i=(s);i<(d);++i)
int n,m,A[pmax][nmax][nmax];
int MAX(int a,int b)
{
return a>b?a:b;
}
int main()
{
freopen("plantatie.in","r",stdin);
freopen("plantatie.out","w",stdout);
int l,j,i,ii,c;
scanf("%d %d",&n,&m);
FOR(i,0,n) FOR(j,0,n)
scanf("%d",&A[0][i][j]);
FOR(l,0,pmax-1) FOR(i,0,n-pt(l)) FOR(j,0,n-pt(l))
A[l+1][i][j]=MAX(MAX(A[l][i][j],A[l][i][j+pt(l)]),
MAX(A[l][i+pt(l)][j],A[l][i+pt(l)][j+pt(l)]));
FOR(ii,0,m)
{
scanf("%d %d %d",&i,&j,&c);
i--,j--;
for(l=pmax-1;pt(l)>c;l--);
printf("%d\n",MAX(MAX(A[l][i][j],A[l][i][j+c-pt(l)]),
MAX(A[l][i+c-pt(l)][j],A[l][i+c-pt(l)][j+c-pt(l)])));
}
return 0;
}