#include<cstdio>
using namespace std;
const int N = 1e5 + 5;
int n,m,rt[N],sum[N << 5],ls[N << 5],rs[N << 5],size;
void update(int &p1,int p2,int l,int r,int u)
{
p1 = ++size,sum[p1] = sum[p2] + u;
if (l == r) return;
int mid = l + r >> 1;
if (u <= mid) rs[p1] = rs[p2],update(ls[p1],ls[p2],l,mid,u);
else ls[p1] = ls[p2],update(rs[p1],rs[p2],mid + 1,r,u);
}
int query(int p1,int p2,int l,int r,int L,int R)
{
if (l >= L && r <= R) return sum[p2] - sum[p1];
int mid = l + r >> 1,tmp = 0;
if (L <= mid) tmp = query(ls[p1],ls[p2],l,mid,L,R);
if (R > mid) tmp += query(rs[p1],rs[p2],mid + 1,r,L,R);
return tmp;
}
int main()
{
scanf("%d",&n);
for (int i = 1,q; i <= n; i++)
scanf("%d",&q),update(rt[i],rt[i - 1],1,1e9,q);
scanf("%d",&m);
for (int i = 1,q,p; i <= m; i++)
{
scanf("%d%d",&q,&p);
int ans = 1,k = query(rt[q - 1],rt[p],1,1e9,1,1);
for (; k != ans - 1;) ans = k + 1,k = query(rt[q - 1],rt[p],1,1e9,1,ans);
printf("%d\n",ans);
}
}