#include <cstdio>
using namespace std;
int r[100005][20];
int logx[100005];
int minn(int a, int b)
{
if(a<b)
return a;
return b;
}
int main()
{ freopen("rmq.in", "r",stdin);
freopen("rmq.out", "w",stdout);
int n,m,i,x,j,a,b,L;
scanf("%d%d", &n, &m);
for(i=1; i<=n; i++){
scanf("%d", &x);
r[i][0]=x;
for(j=1; (1<<j)<=i; j++)
r[i][j]=minn(r[i][j-1], r[i-(1<<(j-1))][j-1]);
}
logx[1]=0;
for(i=2; i<=n; i++)
logx[i]=1+logx[i/2];
for(i=1; i<=m; i++){
scanf("%d%d", &a, &b);
L=logx[b-a+1];
printf("%d\n", minn(r[b][L], r[a+(1<<L)-1][L]));
}
return 0;
}