var a:array[0..9,1..500,1..500] of longint;
n,m,i,j,p,d,k,c:longint;
f,g:text;
function max(p1,p2,p3,p4:longint):longint;
var x:longint;
begin
x:=p1;
if p2>x then
x:=p2;
if p3>x then
x:=p3;
if p4>x then
x:=p4;
max:=x;
end;
begin
assign(f,'plantatie.in');
assign(g,'plantatie.out');
reset(f);rewrite(g);
readln(f,n,m);
for i:=1 to n do
begin
for j:=1 to n do
read(f,a[0,i,j]);
readln(f);
end;
d:=1;
repeat
d:=d*2;
p:=p+1;
for i:=1 to n-d+1 do
for j:=1 to n-d+1 do
a[p,i,j]:=max(a[p-1,i,j],a[p-1,i+d div 2,j],a[p-1,i,j+d div 2],a[p-1,i+d div 2,j+d div 2]);
until d>=n;
for c:=1 to m do
begin
readln(f,i,j,k);
p:=0;d:=1;
repeat
d:=d*2;
p:=p+1;
until d>=k;
d:=d div 2;
p:=p-1;
writeln(g,max(a[p,i,j],a[p,i,j+k-d],a[p,i+k-d,j],a[p,i+k-d,j+k-d]));
end;
close(f);close(g);
end.