#include<bits/stdc++.h>
#define int long long
using namespace std;
int m,n,a[200010],tree[800040];
void BT(int wz,int l,int r)
{
if(l==r){tree[wz]=a[l];return ;}
int mid=(l+r)/2;
BT(wz*2,l,mid);
BT(wz*2+1,mid+1,r);
tree[wz]=min(tree[wz*2],tree[wz*2+1]);
}
int f(int wz,int l,int r,int le,int ri)
{
if(le<=l&&ri>=r) return tree[wz];
int mid=(l+r)/2;
int ans=1145140;
if(le<=mid) ans=min(ans,f(wz*2,l,mid,le,ri));
if(ri>mid) ans=min(ans,f(wz*2+1,mid+1,r,le,ri));
return ans;
}
signed main()
{
cin>>m>>n;
for(int i=1;i<=m;i++)
cin>>a[i];
BT(1,1,n);
int le1,ri1;
for(int i=1;i<=n;i++)
{
cin>>le1>>ri1;
cout<<f(1,1,n,le1,ri1)<<endl;
}
return 0;
}