#include <bits/stdc++.h>
using namespace std;
#define oo 10000000000
#define pp pair<int,int>
#define RRR ios_base::sync_with_stdio(false);cin.tie(0);
int ar[100000*2];
int v[1000000];
void update(int node,int s,int e,int idx,int v)
{
if (s==e)
ar[node] = v;
else
{
int mid = (s+e)/2;
if (idx <= mid)
update(2*node,s,mid,idx,v);
else update(2*node+1,mid+1,e,idx,v);
ar[node] = min(ar[2*node],ar[2*node+1]);
}
}
int mx = oo;
void q(int node,int s,int e,int r, int l)
{
if (r <= s && l >= e)
mx = min(mx,ar[node]);
else{
int mid = (s+e)/2;
if (r <= mid)q(node*2,s,mid,r,l);
if (l>mid)q(node*2+1,mid+1,e,r,l);
}
}
int main()
{
RRR
int n;
int m;
freopen("rmq.in","r",stdin);
freopen("rmq.out","w",stdout);
cin >> n >> m;
for (int i=1;i<=n;i++)
{
int z;
cin >> z;
update(1,1,n,i,z);
}
for (int i=0;i<m;i++)
{
int a,b;
cin >> a >> b;
mx = oo;
q(1,1,n,a,b);
cout << mx << endl;
}
return 0;
}