#include <iostream>
#include <map>

using namespace std;
#define MAX 30009
#define mii map<int,int>
int arr[MAX];
mii tree[MAX<<2];
mii::iterator itr;

void merge(mii &t,mii a,mii &b)
{
	t=a;
	for(itr=b.begin();itr!=b.end();itr++)
		t[itr->first]++;
}

void build(int t,int i,int j)
{
	if(i==j){
		tree[t][arr[i]]++;
		return;
	}
	int l=t<<1,r=l+1,mid=(i+j)>>1;
	build(l,i,mid);
	build(r,mid+1,j);
	merge(tree[t],tree[l],tree[r]);
}

mii query(int t,int i,int j,int ri,int rj)
{
	mii tmp,a,b;
	if(j<ri||i>rj)
		return a;
		
	if(ri<=i && rj>=j)
		return tree[t];
		
	int l=t<<1,r=l+1,mid=(i+j)>>1;
	a = query(l,i,mid,ri,mid);
	b = query(r,mid+1,j,mid+1,rj);
	merge(tmp,a,b);
	return tmp;
}

int main() {
	int n,q,a,b;
	mii t;
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>arr[i];
	build(1,1,n);
	cin>>q;
	while(q--)
	{
		cin>>a>>b;
		t = query(1,1,n,a,b);
		cout<<t.size()<<endl;
	}
	return 0;
}