#include<bits/stdc++.h>
using namespace std;
int n,m,f[100005][20],a[100005];
void st(int k)
{
for(int i=1;i<=k;++i)f[i][0]=a[i];
for(int j=1;(1<<j)<=n;++j)
for(int i=1;i+(1<<j)-1<=n;++i)
f[i][j]=max(f[i][j-1],f[i+(1<<j-1)][j-1]);
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
st(n);
for(int i=1;i<=m;i++)
{
int x,y;
cin>>x>>y;
int t=log2(y-x+1);
cout<<max(f[x][t],f[y-(1<<t)+1][t])<<endl;
}
return 0;
}