#include<bits/stdc++.h>
using namespace std;
int n,q;
int maxx[1000005][23],minn[1000005][23],a[1000005];
int ask(int l,int r)
{
int x=int(log(r-l+1)/log(2));
return min(minn[l][x],minn[r-(1<<x)+1][x]);
}
void add()
{
for(int i=1;i<=n;i++)minn[i][0]=a[i];
for(int j=1;(1<<j)<=n;j++)
{
for(int i=1;i+(1<<j)-1<=n;i++)
{
minn[i][j]=min(minn[i][j-1],minn[i+(1<<(j-1))][j-1]);
}
}
}
int main()
{
int r,l;
cin>>n>>q;
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
add();
for(int i=1;i<=q;i++)
{
scanf("%d%d",&l,&r);
printf("%d\n",ask(l,r));
}
}