#include<bits/stdc++.h>
#define int long long
using namespace std;
int read(){
int res=0,f=1;char c=getchar();
while(c<'0'||c>'9'){
if(c=='-') f=-1;
c=getchar();
}
while(c>='0'&&c<='9'){
res=(res<<3)+(res<<1)+c-'0';
c=getchar();
}
return res*f;
}
const int N=5e4+5,INF=1e18+10;
int n,q,f1,f2,f3,mid_max,a[N],b[N];
struct NODE{
int l,r,maxx;
}tr[N<<2];
void push_up(int p){
tr[p].maxx=max(tr[p<<1].maxx,tr[p<<1|1].maxx);
if(tr[p].r-tr[p].l != a[tr[p].r]-a[tr[p].l]) f2=1;//中间有不知道的
}
void build(int p,int l,int r){
tr[p].l=l; tr[p].r=r;
if(l==r){
tr[p].maxx=b[l];
return;
}
int mid=(l+r)>>1;
build(p<<1,l,mid);
build(p<<1|1,mid+1,r);
push_up(p);
}
int query(int p,int nl,int nr){
if(nl<=tr[p].l&&tr[p].r<=nr){
return tr[p].maxx;
}
int res=-INF;
int mid=(tr[p].l+tr[p].r)>>1;
if(nl<=mid) res=max(res,query(p<<1,nl,nr));
if(mid<nr) res=max(res,query(p<<1|1,nl,nr));
return res;
}
signed main(){
n=read();
for(int i=1;i<=n;i++){
a[i]=read();
b[i]=read();
}
build(1,1,n);
q=read();
for(int i=1;i<=q;i++){
int y=read(),x=read();//y是起点,x是终点
//保证y>=x && max(y-x)<x
int st=lower_bound(a+1,a+1+n,y)-a;
int ed=lower_bound(a+1,a+1+n,x)-a;
f1=0,f2=0,f3=0,mid_max=0;
if(a[st]!=y) f1=1;//左边查不到
if(a[ed]!=x) f3=1;//右边查不到
if(f1 && f3) mid_max = query(1,st,ed-1);//两边都查不到
else if(f1 && !f3) mid_max = query(1,st,ed-1);//左边不查到,右边查得到
else if(!f1 && f3) mid_max = query(1,st+1,ed-1);//左边查得到,右边查不到
else mid_max = query(1,st+1,ed-1);//左右都查得到
if(a[st]+1!=a[st+1] || a[ed-1]+1!=a[ed]) f2=1;//中间漏了
if(f1+f2+f3==3) printf("maybe\n");//左中右都不知道
else if(f1 && f3){//左右不清楚
printf("maybe\n");
}else if(f1 && f2){//左中不清楚
if(mid_max>=b[ed]) printf("false\n");
else printf("maybe\n");
}else if(f2 && f3){//中右不清楚
if(b[st]<=mid_max) printf("false\n");
else printf("maybe\n");
}else if(f1==1){//左不清楚
if(mid_max>=b[ed]) printf("false\n");
else printf("maybe\n");
}else if(f2==1){//中不清楚
if(b[st]<b[ed] || mid_max>=b[ed] || b[st]<=mid_max) printf("false\n");
else printf("maybe\n");
}else if(f3==1){//右不清楚
if(b[st]<=mid_max) printf("false\n");
else printf("maybe\n");
}else{//全部清楚
if(b[st]>=b[ed] && mid_max<b[ed]) printf("true\n");
else printf("false\n");
}
}
return 0;
}
rt,快调死了,真不知道哪儿错了