#include<bits/stdc++.h>
using namespace std;
int blk=1500,ar[500005],qq[500005],
cnt[500005],val[500005],res,tot ;
struct str{
int a,b,c ;
}qr[500003] ;
bool comp(str s1 , str s2)
{
int a=s1.a/blk , b = s2.a/blk ;
if(a!=b) return a<b ;
return s1.b<s2.b ;
}
void add(int id)
{
int k=ar[id] ;
if(cnt[k]==val[k]) tot-- ;
cnt[k]++ ;
if(cnt[k]==1) res++ ;
if(cnt[k]==val[k]) tot++ ;
}
void rmove(int id)
{
int k=ar[id] ;
if(cnt[k]==val[k]) tot-- ;
cnt[k]-- ;
if(cnt[k]==0) res-- ;
if(cnt[k]==val[k]) tot++ ;
}
int32_t main()
{
int n,m ;
scanf("%d%d",&n,&m) ;
for(int i = 0 ; i < n ; i++) scanf("%d",&ar[i]) ;
for(int i = 1 ; i <= m ; i++) scanf("%d",&val[i]) ;
int q ; cin>>q;
for(int i = 0 ; i < q ; i++)
{
int l,r;cin>>l>>r ; l-- ; r-- ;
qr[i].a=l;qr[i].b=r;qr[i].c=i ;
}
sort(qr,qr+q,comp) ;
// for(int i = 0 ; i < q ; i++)
// cout<<qr[i].a<<" "<<qr[i].b<<" "<<qr[i].c<<endl ;
//cout<<endl ;
int ml=0,mr=-1 ; res=0;tot=0;
for(int i = 0 ; i < q ; i++)
{
int l=qr[i].a , r=qr[i].b ; //l-- ; r-- ;
//cout<<l<<" "<<r<<endl ;
while(mr<r){mr++ ; add(mr) ; }
while(mr>r){rmove(mr) ; mr-- ; }
while(ml<l){rmove(ml) ; ml++ ; }
while(ml>l){ml-- ; add(ml) ; }
// cout<<ml<<" "<<mr<<endl ;
// cout<<res<<" rt "<<tot<<endl ;
// cout<<endl ;
qq[qr[i].c]=(res==tot) ;
}
for(int i = 0 ; i < q ; i++)
printf("%d\n",qq[i]) ;
}
/*
8 4
2 2 1 4 4 2 4 4
1 2 3 4
12
1 8
1 2
3 3
3 8
1 4
1 5
1 7
1 3
4 8
6 8
1 6
2 5
*/
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IGJsaz0xNTAwLGFyWzUwMDAwNV0scXFbNTAwMDA1XSwKY250WzUwMDAwNV0sdmFsWzUwMDAwNV0scmVzLHRvdCA7CnN0cnVjdCBzdHJ7CiAgICBpbnQgYSxiLGMgOwp9cXJbNTAwMDAzXSA7CmJvb2wgY29tcChzdHIgczEgLCBzdHIgczIpCnsKICAgIGludCBhPXMxLmEvYmxrICwgYiA9IHMyLmEvYmxrIDsKICAgIGlmKGEhPWIpIHJldHVybiBhPGIgOwogICAgcmV0dXJuIHMxLmI8czIuYiA7Cn0Kdm9pZCBhZGQoaW50IGlkKQp7CiAgICBpbnQgaz1hcltpZF0gOwogICAgaWYoY250W2tdPT12YWxba10pIHRvdC0tIDsKICAgIGNudFtrXSsrIDsKICAgIGlmKGNudFtrXT09MSkgcmVzKysgOwogICAgaWYoY250W2tdPT12YWxba10pIHRvdCsrIDsKfQp2b2lkIHJtb3ZlKGludCBpZCkKewogICAgaW50IGs9YXJbaWRdIDsKICAgIGlmKGNudFtrXT09dmFsW2tdKSB0b3QtLSA7CiAgICBjbnRba10tLSA7CiAgICBpZihjbnRba109PTApIHJlcy0tIDsKICAgIGlmKGNudFtrXT09dmFsW2tdKSB0b3QrKyA7Cn0KaW50MzJfdCBtYWluKCkKewogICAgaW50IG4sbSA7CiAgICBzY2FuZigiJWQlZCIsJm4sJm0pIDsKICAgIGZvcihpbnQgaSA9IDAgOyBpIDwgbiA7IGkrKykgc2NhbmYoIiVkIiwmYXJbaV0pIDsKICAgIGZvcihpbnQgaSA9IDEgOyBpIDw9IG0gOyBpKyspIHNjYW5mKCIlZCIsJnZhbFtpXSkgOwogICAgaW50IHEgOyBjaW4+PnE7CiAgICBmb3IoaW50IGkgPSAwIDsgaSA8IHEgOyBpKyspCiAgICB7CiAgICAgICAgaW50IGwscjtjaW4+Pmw+PnIgOyBsLS0gOyByLS0gOwogICAgICAgIHFyW2ldLmE9bDtxcltpXS5iPXI7cXJbaV0uYz1pIDsKICAgIH0KICAgIHNvcnQocXIscXIrcSxjb21wKSA7CiAgLy8gIGZvcihpbnQgaSA9IDAgOyBpIDwgcSA7IGkrKykKICAvLyBjb3V0PDxxcltpXS5hPDwiICI8PHFyW2ldLmI8PCIgIjw8cXJbaV0uYzw8ZW5kbCA7CiAgLy9jb3V0PDxlbmRsIDsKICAgIGludCBtbD0wLG1yPS0xIDsgcmVzPTA7dG90PTA7CiAgICBmb3IoaW50IGkgPSAwIDsgaSA8IHEgOyBpKyspCiAgICB7CiAgICAgICAgaW50IGw9cXJbaV0uYSAsIHI9cXJbaV0uYiA7IC8vbC0tIDsgci0tIDsKICAgICAgICAvL2NvdXQ8PGw8PCIgIjw8cjw8ZW5kbCA7CiAgICAgICAgd2hpbGUobXI8cil7bXIrKyA7IGFkZChtcikgOyB9CiAgICAgICAgd2hpbGUobXI+cil7cm1vdmUobXIpIDsgbXItLSA7IH0KICAgICAgICB3aGlsZShtbDxsKXtybW92ZShtbCkgOyBtbCsrIDsgfQogICAgICAgIHdoaWxlKG1sPmwpe21sLS0gOyBhZGQobWwpIDsgfQogICAgICAgLy8gY291dDw8bWw8PCIgIjw8bXI8PGVuZGwgOwogICAgICAgLy8gY291dDw8cmVzPDwiIHJ0ICI8PHRvdDw8ZW5kbCA7CiAgICAgLy8gICBjb3V0PDxlbmRsIDsKICAgICAgICAgcXFbcXJbaV0uY109KHJlcz09dG90KSA7CiAgICB9CiAgICBmb3IoaW50IGkgPSAwIDsgaSA8IHEgOyBpKyspCiAgICAgICBwcmludGYoIiVkXG4iLHFxW2ldKSA7Cn0KLyoKOCA0CjIgMiAxIDQgNCAyIDQgNAoxIDIgMyA0CjEyCjEgOAoxIDIKMyAzCjMgOAoxIDQKMSA1CjEgNwoxIDMKNCA4CjYgOAoxIDYKMiA1CiovCg==