#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e5+5;
int st[MAXN][25];
inline int read(){
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*f;
}
int main(){
int n=read(),m=read();
for(register int i=1;i<=n;++i){
st[i][0]=read();
}
for(register int j=1;j<=21;++j){
for(register int i=1;i+(1<<j)-1<=n;++i){
st[i][j]=min(st[i][j-1],st[i+(1<<(j-1))][j-1]);
}
}
while (m--){
int l=read(),r=read();
int k=log2(r-l+1);
printf("%d\n",min(st[l][k],st[r-(1<<k)+1][k]));
}
return 0;
}