/*
AUTHOR: BHUVNESH JAIN
INSTITUITION: BITS PILANI, PILANI
*/
#include <bits/stdc++.h>
using namespace std;
#define fastio std::ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0)
#define PAUSE_EXE assert(false)
#define MAX 30002
#define MAX2 200002
#define SIZE 1000002
#define MOD 1000000007LL
#define REP(i,n) for(__typeof(n) i=0; i<n; ++i)
#define CREP(i,n) for(__typeof(n) i=n-1; i>=0; --i)
#define MYREP(i,a,b) for(__typeof(a) i=a; i<=b; ++i)
#define MYCREP(i,a,b) for(__typeof(a) i=b; i>=a; --i)
#define sz(a) int((a).size())
#define pb push_back
#define mp make_pair
#define fi first
#define sec second
#define all(c) (c).begin(),(c).end()
#define allr(c) (c).rbegin(),(c).rend()
#define loop(c,i) for(typeof(c.begin()) i = c.begin(); i != c.end(); i++)
#define loopr(c,i) for(typeof(c.end()) i = c.end(); i != c.begin(); )
int bucket_size, num[MAX], freq[SIZE];
int ans[MAX2];
struct query
{
int ind, l, r;
}q[MAX2];
bool cmp(query a, query b)
{
int ax = a.l/bucket_size;
int bx = b.l/bucket_size;
if (ax != bx)
return ax < bx;
return a.r < b.r;
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("inp.txt", "r", stdin);
#endif
int n, m;
scanf("%d", &n);
MYREP(i, 1, n)
scanf("%d", &num[i]);
scanf("%d", &m);
REP(i, m)
{
// inPos(q[i].l) , inPos(q[i].r);
scanf("%d %d", &q[i].l, &q[i].r);
q[i].ind = i;
}
bucket_size = ceil(sqrt(n));
sort(q, q+m, cmp);
int start, end;
int sum;
start = end = 0;
sum = 0;
REP(i, m)
{
while (start < q[i].l)
{
--freq[num[start]];
if (freq[num[start]] == 0)
sum--;
++start;
}
while (end > q[i].r)
{
--freq[num[end]];
if (freq[num[end]] == 0)
sum--;
--end;
}
while (start > q[i].l)
{
--start;
++freq[num[start]];
if (freq[num[start]] == 1)
sum++;
}
while (end < q[i].r)
{
++end;
++freq[num[end]];
if (freq[num[end]] == 1)
sum++;
}
ans[q[i].ind] = sum;
}
REP(i, m)
printf("%d\n", ans[i]);
return 0;
}
LyoKICAgIEFVVEhPUjogICAgICAgICBCSFVWTkVTSCBKQUlOCiAgICBJTlNUSVRVSVRJT046ICAgQklUUyBQSUxBTkksIFBJTEFOSQoqLwojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KIAp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBmYXN0aW8gICAgICAgICAgc3RkOjppb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTtjaW4udGllKDApO2NvdXQudGllKDApCiNkZWZpbmUgUEFVU0VfRVhFICAgICAgIGFzc2VydChmYWxzZSkKI2RlZmluZSBNQVggICAgICAgICAgICAgMzAwMDIKI2RlZmluZSBNQVgyICAgICAgICAgICAgMjAwMDAyCiNkZWZpbmUgU0laRSAgICAgICAgICAgIDEwMDAwMDIKI2RlZmluZSBNT0QgICAgICAgICAgICAgMTAwMDAwMDAwN0xMCiNkZWZpbmUgUkVQKGksbikgICAgICAgIGZvcihfX3R5cGVvZihuKSBpPTA7IGk8bjsgKytpKQojZGVmaW5lIENSRVAoaSxuKSAgICAgICBmb3IoX190eXBlb2YobikgaT1uLTE7IGk+PTA7IC0taSkKI2RlZmluZSBNWVJFUChpLGEsYikgICAgZm9yKF9fdHlwZW9mKGEpIGk9YTsgaTw9YjsgKytpKQojZGVmaW5lIE1ZQ1JFUChpLGEsYikgICBmb3IoX190eXBlb2YoYSkgaT1iOyBpPj1hOyAtLWkpCiNkZWZpbmUgc3ooYSkgICAgICAgICAgIGludCgoYSkuc2l6ZSgpKQojZGVmaW5lIHBiICAgICAgICAgICAgICBwdXNoX2JhY2sKI2RlZmluZSBtcCAgICAgICAgICAgICAgbWFrZV9wYWlyCiNkZWZpbmUgZmkgICAgICAgICAgICAgIGZpcnN0CiNkZWZpbmUgc2VjICAgICAgICAgICAgIHNlY29uZAojZGVmaW5lIGFsbChjKSAgICAgICAgICAoYykuYmVnaW4oKSwoYykuZW5kKCkKI2RlZmluZSBhbGxyKGMpICAgICAgICAgKGMpLnJiZWdpbigpLChjKS5yZW5kKCkKI2RlZmluZSBsb29wKGMsaSkgICAgICAgZm9yKHR5cGVvZihjLmJlZ2luKCkpIGkgPSBjLmJlZ2luKCk7IGkgIT0gYy5lbmQoKTsgaSsrKQojZGVmaW5lIGxvb3ByKGMsaSkgICAgICBmb3IodHlwZW9mKGMuZW5kKCkpIGkgPSBjLmVuZCgpOyBpICE9IGMuYmVnaW4oKTsgKQoKaW50IGJ1Y2tldF9zaXplLCBudW1bTUFYXSwgZnJlcVtTSVpFXTsKCmludCBhbnNbTUFYMl07CgpzdHJ1Y3QgcXVlcnkKewogICAgaW50IGluZCwgbCwgcjsKfXFbTUFYMl07Cgpib29sIGNtcChxdWVyeSBhLCBxdWVyeSBiKQp7CiAgICBpbnQgYXggPSBhLmwvYnVja2V0X3NpemU7CiAgICBpbnQgYnggPSBiLmwvYnVja2V0X3NpemU7CiAgICBpZiAoYXggIT0gYngpCiAgICAgICAgcmV0dXJuIGF4IDwgYng7CiAgICByZXR1cm4gYS5yIDwgYi5yOwp9CgppbnQgbWFpbigpCnsKICAgICNpZm5kZWYgT05MSU5FX0pVREdFCiAgICAgICAgZnJlb3BlbigiaW5wLnR4dCIsICJyIiwgc3RkaW4pOwogICAgI2VuZGlmCiAgICBpbnQgbiwgbTsKICAgIHNjYW5mKCIlZCIsICZuKTsKICAgIE1ZUkVQKGksIDEsIG4pCiAgICAgICAgc2NhbmYoIiVkIiwgJm51bVtpXSk7CiAgICBzY2FuZigiJWQiLCAmbSk7CiAgICBSRVAoaSwgbSkKICAgIHsKICAgICAgICAvLyBpblBvcyhxW2ldLmwpICwgaW5Qb3MocVtpXS5yKTsKICAgICAgICBzY2FuZigiJWQgJWQiLCAmcVtpXS5sLCAmcVtpXS5yKTsKICAgICAgICBxW2ldLmluZCA9IGk7CiAgICB9CiAgICBidWNrZXRfc2l6ZSA9IGNlaWwoc3FydChuKSk7CiAgICBzb3J0KHEsIHErbSwgY21wKTsKICAgIGludCBzdGFydCwgZW5kOwogICAgaW50IHN1bTsKICAgIHN0YXJ0ID0gZW5kID0gMDsKICAgIHN1bSA9IDA7CiAgICBSRVAoaSwgbSkKICAgIHsKICAgICAgICB3aGlsZSAoc3RhcnQgPCBxW2ldLmwpCiAgICAgICAgewogICAgICAgICAgICAtLWZyZXFbbnVtW3N0YXJ0XV07CiAgICAgICAgICAgIGlmIChmcmVxW251bVtzdGFydF1dID09IDApCiAgICAgICAgICAgICAgICBzdW0tLTsKICAgICAgICAgICAgKytzdGFydDsKICAgICAgICB9CiAgICAgICAgd2hpbGUgKGVuZCA+IHFbaV0ucikKICAgICAgICB7CiAgICAgICAgICAgIC0tZnJlcVtudW1bZW5kXV07CiAgICAgICAgICAgIGlmIChmcmVxW251bVtlbmRdXSA9PSAwKQogICAgICAgICAgICAgICAgc3VtLS07CiAgICAgICAgICAgIC0tZW5kOwogICAgICAgIH0KCiAgICAgICAgd2hpbGUgKHN0YXJ0ID4gcVtpXS5sKQogICAgICAgIHsKICAgICAgICAgICAgLS1zdGFydDsKICAgICAgICAgICAgKytmcmVxW251bVtzdGFydF1dOwogICAgICAgICAgICBpZiAoZnJlcVtudW1bc3RhcnRdXSA9PSAxKQogICAgICAgICAgICAgICAgc3VtKys7CiAgICAgICAgfQogICAgICAgIHdoaWxlIChlbmQgPCBxW2ldLnIpCiAgICAgICAgewogICAgICAgICAgICArK2VuZDsKICAgICAgICAgICAgKytmcmVxW251bVtlbmRdXTsKICAgICAgICAgICAgaWYgKGZyZXFbbnVtW2VuZF1dID09IDEpCiAgICAgICAgICAgICAgICBzdW0rKzsKICAgICAgICB9CgogICAgICAgIGFuc1txW2ldLmluZF0gPSBzdW07CiAgICB9CiAgICBSRVAoaSwgbSkKICAgICAgICBwcmludGYoIiVkXG4iLCBhbnNbaV0pOwogICAgcmV0dXJuIDA7Cn0=