#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("plantatie.in");
ofstream g("plantatie.out");
int rmq[9][501][501], lg[501];
int max4(int a, int b, int c, int d)
{
return max(max(a, b), max(c, d));
}
int main()
{
int n, m;
f >> n >> m;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
f >> rmq[0][i][j];
if (i > 1)
lg[i] = 1 + lg[i/2];
}
for (int e = 1; e <= lg[n]; e++)
for (int i = (1 << e); i <= n; i++)
for (int j = (1 << e); j <= n; j++)
rmq[e][i][j] = max4(rmq[e - 1][i - (1 << (e - 1))][j - (1 << (e - 1))], rmq[e - 1][i - (1 << (e - 1))][j],
rmq[e - 1][i][j - (1 << (e - 1))], rmq[e - 1][i][j]);
int l, c, lat, p, e;
for (int i = 1; i <= m; i++)
{
f >> l >> c >> lat;
e = lg[lat];
p = 1 << (e - 1);
l += lat - 1;
c += lat - 1;
g << max4(rmq[e][l - lat + p][c - lat + p], rmq[e][l - lat + p][c], rmq[e][l][c - lat + p], rmq[e][l][c]) << '\n';
}
f.close();
g.close();
return 0;
}