#include <iostream>
#include <fstream>
using namespace std;
int n,m,rmq[100010][18],x[100010],lg[100010];
int main()
{
int i,j;
ifstream t1("rmq.in");
ofstream t2("rmq.out");
t1>>n>>m;
for(i=1;i<=n;i++) t1>>x[i];
lg[1]=0;
for(i=2;i<=n;i++) lg[i]=lg[i/2]+1;
for(i=1;i<=n;i++) rmq[i][0]=x[i];
for(j=1;1<<j <=n; j++)
for(i=1;i<=n;i++)
rmq[i][j]=min( rmq[i][j-1], rmq[i + (1<< (j-1)) ][j-1] );
int a,b,l;
for(;m;m--)
{
t1>>a>>b;
l=lg[b-a+1];
t2<<min( rmq[a][l], rmq[ b- (1<<l) +1 ][l] )<<'\n';
}
t1.close();
t2.close();
return 0;
}