#include<stdio.h>
int v[502][502],d[502][502][10],Log[]={0,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8};
inline int max(int a,int b)
{
return a>=b?a:b;
}
int main()
{
freopen("plantatie.in","r",stdin);
freopen("plantatie.out","w",stdout);
int n,m,i,j,sol,l,k,lat;
scanf("%d%d",&n,&m);
///////////////
for(l=1;l<=n;++l)
{
for(i=1;i<=n;++i)
scanf("%d",&v[l][i]);
for(i=1;i<=n;++i)
d[l][i][0]=i;
for(j=1;1<<j<=n;++j)
{
for(i=1;i+(1<<j)-1<=n;++i)
{
if(v[l][d[l][i][j-1]]>=v[l][d[l][i+(1<<(j-1))][j-1]])
d[l][i][j]=d[l][i][j-1];
else
d[l][i][j]=d[l][i+(1<<(j-1))][j-1];
}
}
}
///////////////
while(m--)
{
scanf("%d%d%d",&i,&j,&lat);
k=Log[lat];
sol=0;
for(l=i;l<i+lat;++l)
{
if(v[d[l][j][k]]>=v[d[l][j+lat-1-(1<<k)+1][k]])
sol=max(sol,v[l][d[l][j][k]]);
else
sol=max(sol,v[l][d[l][j+lat-1-(1<<k)+1][k]]);
}
printf("%d\n",sol);
}
return 0;
}