#include <iostream> #include <cstdio> #include <cmath> using namespace std; int a[303][303],maxn[9][9][301][301],n,m; void initRmq() { int i,j,x,y; for(i=0;i<n;i++) for(j=0;j<m;j++) maxn[0][0][i][j]=a[i][j]; for(i=0;(1<<i)<n;i++) for(j=0;(1<<j)<m;j++) for(x=0;x+(1<<i)<=n;x++) for(y=0;y+(1<<j)<=m;y++) if(i || j) { if(i) maxn[i][j][x][y]=max(maxn[i-1][j][x][y],maxn[i-1][j][x+(1<<(i-1))][y]); else maxn[i][j][x][y]=max(maxn[i][j-1][x][y],maxn[i][j-1][x][y+(1<<(j-1))]); } } inline int rmq(int x1,int y1,int x2,int y2) { int i=log(x2-x1+1)/log(2),j=log(y2-y1+1)/log(2); return max(max(maxn[i][j][x1][y1],maxn[i][j][x2-(1<<i)+1][y1]),max(maxn[i][j][x1][y2-(1<<j)+1],maxn[i][j][x2-(1<<i)+1][y2-(1<<j)+1])); } int main() { //ios::sync_with_stdio(false); while(scanf("%d %d",&n,&m)==2) { int i,j,x1,y1,x2,y2,ans,q; for(i=0;i<n;i++) for(j=0;j<m;j++) scanf("%d",&a[i][j]);//cin>>a[i][j]; initRmq(); scanf("%d",&q);//cin>>q; for(i=0;i<q;i++) { scanf("%d %d %d %d",&x1,&y1,&x2,&y2);//cin>>x1>>y1>>x2>>y2; x1--;y1--;x2--;y2--; printf("%d ",ans=rmq(x1,y1,x2,y2));//cout<<rmq(x1,y1,x2,y2)<<" "; if(a[x1][y1]==ans || a[x1][y2]==ans || a[x2][y1]==ans || a[x2][y2]==ans) puts("yes"); else puts("no"); } } return 0; }