#include <fstream>
#include <cstring>
#include <vector>
#include <deque>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <algorithm>
#include <iomanip>
#include <cmath>
#include <cstdlib>
#include <ctime>
using namespace std;
ifstream cin("matrice2.in");
ofstream cout("matrice2.out");
using ll = long long;
//#define int ll
using pi = pair<int,int>;
using pll = pair<ll, ll>;
#define pb push_back
#define x first
#define y second
const int MOD = 1e9+7, INF = 1e9, NMAX = 150, QMAX = 20005;
int a[NMAX][NMAX], ans[QMAX], n;
vector<int> v[NMAX * NMAX];
map<pi, int> mp;
map<int, int> comp;
int pos(int i, int j)
{
return (i - 1) * n + j;
}
struct lol
{
int i, j, val;
};
bool cmp(const lol &a, const lol &b)
{
return a.val > b.val;
}
vector<lol> vec;
void join(int a, int b, int val)
{
if(comp[a] == comp[b])
return;
if(v[comp[a]].size() < v[comp[b]].size())
swap(a, b);
for(int i = 0; i < v[comp[b]].size(); i++)
{
for(int j = 0; j < v[comp[a]].size(); j++)
{
if(mp[{v[comp[a]][j], v[comp[b]][i]}])
{
ans[mp[{v[comp[a]][j], v[comp[b]][i]}]] = val;
}
}
}
int aux = comp[b];
for(int i = 0; i < v[comp[b]].size(); i++)
v[comp[a]].pb(v[comp[b]][i]);
for(int i = 0; i < v[aux].size(); i++)
comp[v[aux][i]] = comp[a];
v[aux].clear();
}
void solve()
{
ll i, q, j, cnt = 0, x1, y1, x2, y2;
cin >> n >> q;
for(i = 1; i <= n; i++)
for(j = 1; j <= n; j++)
{
cin >> a[i][j];
comp[pos(i, j)] = ++cnt;
v[cnt].pb(pos(i,j));
vec.pb({i, j, a[i][j]});
}
for(i = 1; i <= q; i++)
{
cin >> x1 >> y1 >> x2 >> y2;
mp[{pos(x1, y1), pos(x2,y2)}] = mp[{pos(x2,y2), pos(x1, y1)}] = i;
}
sort(vec.begin(), vec.end(), cmp);
for(i = 0; i < vec.size(); i++)
{
lol u = vec[i];
int posu = pos(u.i,u.j);
if(u.i != 1 && a[u.i-1][u.j] >= u.val)
join(pos(u.i-1,u.j), posu, u.val);
if(u.j != 1 && a[u.i][u.j-1] >= u.val)
join(pos(u.i,u.j-1), posu, u.val);
if(u.i != n && a[u.i+1][u.j] >= u.val)
join(pos(u.i+1,u.j), posu, u.val);
if(u.j != n && a[u.i][u.j+1] >= u.val)
join(pos(u.i,u.j+1), posu, u.val);
}
for(i = 1; i <= q; i++)
cout << ans[i] << '\n';
}
int main()
{
cin.tie(0)->sync_with_stdio(0);
cin.exceptions(cin.failbit);
int T;
T = 1;
while(T--)
solve();
return 0;
}