#include <iostream>
#include <fstream>
#include <cmath>
#include <algorithm>
using namespace std;
int C[600][80000][15], N, M;
int main(){
int i, j, t, lung, x, y, l, val;
ifstream in("plantatie.in");
ofstream out("plantatie.out");
in >> N >> M;
for(i = 1; i <= N; i++)
for(j = 1; j <= N; j++)
{
in >> C[i][j][0];
}
lung = int(log2(N));
for(t = 1; t <= lung; t++)
{
val = 1<<(t-1);
for(i = 1; i <= N; i++)
for(j = 1; j <= N; j++)
if(i + (1<<t) -1 <= N && j + (1<<t) -1 <= N)
C[i][j][t] = max(max(C[i][j][t-1], C[i+val][j][t-1]), max(C[i][j+val][t-1], C[i+val][j+val][t-1]));
}
int rez, put;
for(i = 1; i <= M; i++)
{
in >> x >> y >> l;
put = int(log2(l));
val = 1 << put;
rez = max(max(C[x][y][put], C[x - val + l][y][put]), max(C[x][y - val + l][put], C[x - val + l][y - val + l][put]));
out << rez << "\n";
}
return 0;
}