#include<bits/stdc++.h>
using namespace std;
int n,m;
const int N=5e4+10;
int year[N],yu[N];
struct tree{
int l,r,mx;
}tr[N*4];
void pushup(int p){
tr[p].mx=max(tr[p*2].mx,tr[p*2+1].mx);
}
void build(int p,int l,int r){
tr[p].l=l,tr[p].r=r;
if(l==r){
tr[p].mx=yu[l];
return ;
}
int mid=l+r>>1;
build(p*2,l,mid);
build(p*2+1,mid+1,r);
pushup(p);
}
int query(int p,int x,int y){
if(tr[p].l>=x&&tr[p].r<=y){
return tr[p].mx;
}
int sum=-INT_MAX,mid=tr[p].l+tr[p].r>>1;
if(x<=mid){
sum=query(p*2,x,y);
}
if(y>mid){
sum=max(sum,query(p*2+1,x,y));
}
return sum;
}
signed main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>year[i]>>yu[i];
}
build(1,1,n);
cin>>m;
while(m--){
int x,y;
cin>>y>>x;
bool bx,by;
int yx=lower_bound(year+1,year+1+n,x)-year;
int yy=lower_bound(year+1,year+1+n,y)-year;
bx=(x==year[yx]);
by=(y==year[yy]);
if(!by){
yy--;
}
int mxx=0;
if(yx+1<=yy-1) mxx=query(1,yx+1,yy-1);
if(bx&&by&&yx-yy==x-y&&year[yx]<year[yy]&&year[yx]>mxx){
cout<<"ture\n";
}
else if((bx&&mxx>=year[yx])||(by&&mxx>=year[yy])||(bx&&by&&year[by]<=year[bx])){
cout<<"false\n";
}
else{
cout<<"maybe\n";
}
}
return 0;
}