#include <bits/stdc++.h>
using namespace std;
ifstream f ("rmq.in");
ofstream g ("rmq.out");
int m[100005][20];
int v[100005];
int n,q;
int main()
{
f>>n>>q;
for(int i=0; i<n; i++)
{
f>>v[i];
m[i][0]=v[i];
}
int putere=2;
for(int j=1; putere<=n; j++)
{
for(int i=0; i+putere-1<n; i++)
{
if(m[i][j-1]<m[i+putere/2][j-1])
m[i][j]=m[i][j-1];
else
m[i][j]=m[i+putere/2][j-1];
}
putere*=2;
}
for(int i=0; i<q; i++)
{
int x, y;
f>>x>>y;
x--;
y--;
int log=(int)log2(y-x+1);
if(m[x][log]<m[y-(1<<log)+1][log])
g<<m[x][log]<<"\n";
else
g<<m[y-(1<<log)+1][log]<<"\n";
}
return 0;
}