#include using namespace std; using ll=long long; #define int ll #define rng(i,a,b) for(int i=int(a);i=int(a);i--) #define per(i,b) gnr(i,0,b) #define pb push_back #define eb emplace_back #define a first #define b second #define bg begin() #define ed end() #define all(x) x.bg,x.ed #ifdef LOCAL #define dmp(x) cerr<<__LINE__<<" "<<#x<<" "< void chmax(t&a,u b){if(a void chmin(t&a,u b){if(b using vc=vector; template using vvc=vc>; using pi=pair; using vi=vc; template ostream& operator<<(ostream& os,const pair& p){ return os<<"{"< ostream& operator<<(ostream& os,const vc& v){ os<<"{"; for(auto e:v)os< void dmpr(ostream&os,const T&t,const Args&... args){ os< ostream& operator<<(ostream&os,const array&a){ return os<(all(a)); } template void print_tuple(ostream&,const T&){ } template void print_tuple(ostream&os,const T&t){ if(i)os<<","; os<(t); print_tuple(os,t); } template ostream& operator<<(ostream&os,const tuple&t){ os<<"{"; print_tuple<0,tuple,Args...>(os,t); return os<<"}"; } void print(ll x,int suc=1){ cout<>i; return i; } vi readvi(int n,int off=0){ vi v(n); rep(i,n)v[i]=read()+off; return v; } template void print(const vector&v,int suc=1){ rep(i,v.size()) print(v[i],i==int(v.size())-1?suc:2); } string readString(){ string s; cin>>s; return s; } template T sq(const T& t){ return t*t; } //#define CAPITAL void yes(bool ex=true){ #ifdef CAPITAL cout<<"YES"< void mkuni(vc&v){ sort(all(v)); v.erase(unique(all(v)),v.ed); } ll rand_int(ll l, ll r) { //[l, r] #ifdef LOCAL static mt19937_64 gen; #else static random_device rd; static mt19937_64 gen(rd()); #endif return uniform_int_distribution(l, r)(gen); } template int lwb(const vc&v,const t&a){ return lower_bound(all(v),a)-v.bg; } template struct BIT2{ vc buf; int s; BIT2(int n=0){init(n);} void init(int n){buf.assign(s=n,0);} void add(int i,t v){ for(;i=0;i-=(i+1)&(-i-1)) res+=buf[i]; return res; } t sum(int b,int e){ return get(e-1)-get(b-1); } /*int kth(int k){ int res=0; for(int i=topbit(s);i>=0;i--){ int w=res+(1< struct BIT{ vc buf; int s; BIT(int n=0){init(n);} void init(int n){buf.assign(s=n,0);} void add(int i,t v){ for(;i=0;i-=(i+1)&(-i-1)) res^=buf[i]; return res; } t sum(int b,int e){ return get(e-1)^get(b-1); } /*int kth(int k){ int res=0; for(int i=topbit(s);i>=0;i--){ int w=res+(1<>n; int s=n*2; vi h=readvi(n); vvc relka(s); rep(i,n){ int a,b,c,d,e;cin>>a>>b>>c>>d>>e; e--; relka[e].pb({a,b,c,d}); } vvc qs(s); int q;cin>>q; vi ans(q); rep(i,q){ int x,y;cin>>x>>y; qs[x].eb(y,i); } rep(w,n)if((int)relka[w].size()>=T){ BIT2 bit(s); vvc rc(s); for(auto r:relka[w]){ rc[r.a].eb(r.b,1); rc[r.a].eb(r.d,-1); rc[r.c].eb(r.b,-1); rc[r.c].eb(r.d,1); } rep(i,s){ for(auto z:rc[i]) bit.add(z.a,z.b); for(auto z:qs[i])if(bit.get(z.a)) ans[z.b]^=h[w]; } } { BIT bit(s); vvc rc(s); rep(i,n)if(inc(1,relka[i].size(),T-1)){ vi xs,ys; for(auto r:relka[i]){ xs.pb(r.a); xs.pb(r.c); ys.pb(r.b); ys.pb(r.d); } mkuni(xs); mkuni(ys); int a=xs.size(),b=ys.size(); rep(j,a)rep(k,b) sum[j][k]=0; for(auto r:relka[i]){ r.a=lwb(xs,r.a); r.c=lwb(xs,r.c); r.b=lwb(ys,r.b); r.d=lwb(ys,r.d); sum[r.a][r.b]++; sum[r.a][r.d]--; sum[r.c][r.b]--; sum[r.c][r.d]++; } rep(j,a)rep(k,b-1) sum[j][k+1]+=sum[j][k]; rep(j,a-1)rep(k,b) sum[j+1][k]+=sum[j][k]; rep(j,a-1)rep(k,b-1)if(sum[j][k]){ rc[xs[j]].eb(ys[k],h[i]); rc[xs[j]].eb(ys[k+1],h[i]); rc[xs[j+1]].eb(ys[k],h[i]); rc[xs[j+1]].eb(ys[k+1],h[i]); } } rep(i,s){ for(auto z:rc[i]) bit.add(z.a,z.b); for(auto z:qs[i]) ans[z.b]^=bit.get(z.a); } } for(auto v:ans) print(v); }