const fi='dquery.inp';
fo='dquery.out';
maxn=30000;
type manglon=array[0..1000000]of longint;
mangdulieu=array[0..230000]of longint;
mangit=array[0..300000]of longint;
var pos:manglon;
a,cs,cstv,loai,res:mangdulieu;
it:mangit;
nn,q,n:longint;
procedure mo;
begin
assign(input,fi);reseT(input);
assign(output,fo);rewrite(output);
end;
procedure dong;
begin
closE(input);close(output);
end;
procedure swap(Var i,j:longint);
var t:longint;
begin
t:=i;
i:=j;
j:=t;
end;
procedure qs(l,r:longint);
var i,j,m,x,y:longint;
begin
i:=l;
j:=r;
m:=random(r-l)+1+l;
x:=cs[i];
y:=loai[i];
repeat
while (cs[i]<x) or ((cs[i]=x) and (loai[i]<y)) do inc(I);
while (x<cs[j]) or ((x=cs[j]) and (y<loai[j])) do dec(j);
if i<=j then
begin
swap(cs[i],cs[j]);
swap(loai[i],loai[j]);
swap(a[i],a[j]);
swap(cstv[i],cstv[j]);
inc(i);dec(j);
end;
until i>j;
if i<r then qs(i,r);
if l<j then qs(l,j);
end;
procedure nhap;
var i:longint;
begin
readln(n);
for i:=1 to n do read(a[i]);
for i:=1 to n do
begin
cs[i]:=i;loai[i]:=1;
end;
readln(Q);
for i:=n+1 to n+q do
begin
read(a[i],cs[i]);
loai[i]:=2;
end;
nn:=n;
n:=n+q;
for i:=1 to n do cstv[i]:=i;
qs(1,n);
end;
procedure update(u,w,l,r,i:longint);
var mid:longint;
begin
if (u=l) and (l=r) then
begin
it[i]:=w;
exit;
end;
if (r<u) or (u<l) then exit;
mid:=(l+r) div 2;
update(u,w,l,mid,i*2);
update(u,w,mid+1,r,i*2+1);
it[i]:=it[i*2]+it[i*2+1];
end;
function find(u,v,l,r,i:longint):longint;
var mid:longint;
begin
if (r<u) or (v<l) then exit(0);
if (u<=l) and (r<=v) then exit(it[i]);
mid:=(l+r) div 2;
exit(find(u,v,l,mid,i*2)+find(u,v,mid+1,r,i*2+1));
end;
procedure xuli;
var i:longint;
begin
for i:=1 to n do
if loai[i]=1 then
begin
if pos[a[i]]=0 then
begin
update(cs[i],1,1,maxn,1);
pos[a[i]]:=cs[i];
end
else
begin
update(pos[a[i]],0,1,maxn,1);
pos[a[i]]:=cs[i];
update(cs[i],1,1,maxn,1);
end;
end
else
begin
res[cstv[i]]:=find(a[i],cs[i],1,maxn,1);
end;
for i:=nn+1 to n do writeln(res[i]);
end;
begin
// mo;
nhap;
xuli;
// dong;
end.
Y29uc3QgZmk9J2RxdWVyeS5pbnAnOwogICAgICBmbz0nZHF1ZXJ5Lm91dCc7CiAgICAgICAgbWF4bj0zMDAwMDsKdHlwZSBtYW5nbG9uPWFycmF5WzAuLjEwMDAwMDBdb2YgbG9uZ2ludDsKICAgIG1hbmdkdWxpZXU9YXJyYXlbMC4uMjMwMDAwXW9mIGxvbmdpbnQ7CiAgICBtYW5naXQ9YXJyYXlbMC4uMzAwMDAwXW9mIGxvbmdpbnQ7CnZhciBwb3M6bWFuZ2xvbjsKICAgIGEsY3MsY3N0dixsb2FpLHJlczptYW5nZHVsaWV1OwogICAgaXQ6bWFuZ2l0OwoKICAgIG5uLHEsbjpsb25naW50Owpwcm9jZWR1cmUgbW87CiAgICBiZWdpbgogICAgICAgIGFzc2lnbihpbnB1dCxmaSk7cmVzZVQoaW5wdXQpOwogICAgICAgIGFzc2lnbihvdXRwdXQsZm8pO3Jld3JpdGUob3V0cHV0KTsKICAgIGVuZDsKcHJvY2VkdXJlIGRvbmc7CiAgICBiZWdpbgogICAgICAgIGNsb3NFKGlucHV0KTtjbG9zZShvdXRwdXQpOwogICAgZW5kOwpwcm9jZWR1cmUgc3dhcChWYXIgaSxqOmxvbmdpbnQpOwogICAgdmFyIHQ6bG9uZ2ludDsKICAgICAgICBiZWdpbgogICAgICAgICAgICB0Oj1pOwogICAgICAgICAgICBpOj1qOwogICAgICAgICAgICBqOj10OwogICAgICAgIGVuZDsKcHJvY2VkdXJlIHFzKGwscjpsb25naW50KTsKICAgIHZhciBpLGosbSx4LHk6bG9uZ2ludDsKICAgICAgICBiZWdpbgogICAgICAgICAgICBpOj1sOwogICAgICAgICAgICBqOj1yOwogICAgICAgICAgICBtOj1yYW5kb20oci1sKSsxK2w7CiAgICAgICAgICAgIHg6PWNzW2ldOwogICAgICAgICAgICB5Oj1sb2FpW2ldOwogICAgICAgICAgICByZXBlYXQKICAgICAgICAgICAgICAgIHdoaWxlIChjc1tpXTx4KSBvciAoKGNzW2ldPXgpIGFuZCAobG9haVtpXTx5KSkgZG8gaW5jKEkpOwogICAgICAgICAgICAgICAgd2hpbGUgKHg8Y3Nbal0pIG9yICgoeD1jc1tqXSkgYW5kICh5PGxvYWlbal0pKSBkbyBkZWMoaik7CiAgICAgICAgICAgICAgICBpZiBpPD1qIHRoZW4KICAgICAgICAgICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAgICAgICAgICBzd2FwKGNzW2ldLGNzW2pdKTsKICAgICAgICAgICAgICAgICAgICAgICAgc3dhcChsb2FpW2ldLGxvYWlbal0pOwogICAgICAgICAgICAgICAgICAgICAgICBzd2FwKGFbaV0sYVtqXSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHN3YXAoY3N0dltpXSxjc3R2W2pdKTsKICAgICAgICAgICAgICAgICAgICAgICAgaW5jKGkpO2RlYyhqKTsKICAgICAgICAgICAgICAgICAgICBlbmQ7CiAgICAgICAgICAgIHVudGlsIGk+ajsKICAgICAgICAgICAgaWYgaTxyIHRoZW4gcXMoaSxyKTsKICAgICAgICAgICAgaWYgbDxqIHRoZW4gcXMobCxqKTsKICAgICAgICBlbmQ7CnByb2NlZHVyZSBuaGFwOwp2YXIgaTpsb25naW50OwogICAgYmVnaW4KICAgICAgICByZWFkbG4obik7CiAgICAgICAgZm9yIGk6PTEgdG8gbiBkbyByZWFkKGFbaV0pOwogICAgICAgIGZvciBpOj0xIHRvIG4gZG8KICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgIGNzW2ldOj1pO2xvYWlbaV06PTE7CiAgICAgICAgICAgIGVuZDsKICAgICAgICByZWFkbG4oUSk7CiAgICAgICAgZm9yIGk6PW4rMSB0byBuK3EgZG8KICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgIHJlYWQoYVtpXSxjc1tpXSk7CiAgICAgICAgICAgICAgICBsb2FpW2ldOj0yOwogICAgICAgICAgICBlbmQ7CiAgICAgICAgbm46PW47CiAgICAgICAgbjo9bitxOwogICAgICAgIGZvciBpOj0xIHRvIG4gZG8gY3N0dltpXTo9aTsKICAgICAgICBxcygxLG4pOwogICAgZW5kOwpwcm9jZWR1cmUgdXBkYXRlKHUsdyxsLHIsaTpsb25naW50KTsKICAgIHZhciBtaWQ6bG9uZ2ludDsKICAgICAgICBiZWdpbgogICAgICAgICAgICBpZiAodT1sKSBhbmQgKGw9cikgdGhlbgogICAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgICBpdFtpXTo9dzsKICAgICAgICAgICAgICAgICAgICBleGl0OwogICAgICAgICAgICAgICAgZW5kOwogICAgICAgICAgICBpZiAocjx1KSBvciAodTxsKSB0aGVuIGV4aXQ7CiAgICAgICAgICAgIG1pZDo9KGwrcikgZGl2IDI7CiAgICAgICAgICAgIHVwZGF0ZSh1LHcsbCxtaWQsaSoyKTsKICAgICAgICAgICAgdXBkYXRlKHUsdyxtaWQrMSxyLGkqMisxKTsKICAgICAgICAgICAgaXRbaV06PWl0W2kqMl0raXRbaSoyKzFdOwogICAgICAgIGVuZDsKZnVuY3Rpb24gZmluZCh1LHYsbCxyLGk6bG9uZ2ludCk6bG9uZ2ludDsKICAgIHZhciBtaWQ6bG9uZ2ludDsKICAgICAgICBiZWdpbgogICAgICAgICAgICBpZiAocjx1KSBvciAodjxsKSB0aGVuIGV4aXQoMCk7CiAgICAgICAgICAgIGlmICh1PD1sKSBhbmQgKHI8PXYpIHRoZW4gZXhpdChpdFtpXSk7CiAgICAgICAgICAgIG1pZDo9KGwrcikgZGl2IDI7CiAgICAgICAgICAgIGV4aXQoZmluZCh1LHYsbCxtaWQsaSoyKStmaW5kKHUsdixtaWQrMSxyLGkqMisxKSk7CiAgICAgICAgZW5kOwpwcm9jZWR1cmUgeHVsaTsKICAgIHZhciBpOmxvbmdpbnQ7CiAgICAgICAgYmVnaW4KICAgICAgICAgICAgZm9yIGk6PTEgdG8gbiBkbwogICAgICAgICAgICAgICAgaWYgbG9haVtpXT0xIHRoZW4KICAgICAgICAgICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAgICAgICAgICBpZiBwb3NbYVtpXV09MCB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZShjc1tpXSwxLDEsbWF4biwxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NbYVtpXV06PWNzW2ldOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlKHBvc1thW2ldXSwwLDEsbWF4biwxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NbYVtpXV06PWNzW2ldOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZShjc1tpXSwxLDEsbWF4biwxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZDsKICAgICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAgICAgICAgICByZXNbY3N0dltpXV06PWZpbmQoYVtpXSxjc1tpXSwxLG1heG4sMSk7CiAgICAgICAgICAgICAgICAgICAgZW5kOwogICAgICAgICAgICAgICAgZm9yIGk6PW5uKzEgdG8gbiBkbyB3cml0ZWxuKHJlc1tpXSk7CiAgICAgICAgZW5kOwpiZWdpbgogICAvLyBtbzsKICAgIG5oYXA7CiAgICB4dWxpOwogICAvLyBkb25nOwplbmQuCgo=