#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstdio>
using namespace std;
int a[1000010],st[100][100],n,q;
int main()
{
scanf("%d %d",&n,&q);
for(int i=1;i<=n;i++)
{
scanf("%d ",&a[i]);
}
for(int i=1;i<=n;i++)
{
st[i][0]=a[i];
}
int m=log2(n);
for(int j=1;j+(1<<j)-1<=n;j++)
{
for(int i=1;i+(1<<j)-1<=n;j++)
{
st[i][j]=max(st[i][j-1],st[i+(1<<(j-1))][j-1]);
}
}
int l,r;
while(q--)
{
scanf("%d %d",&l,&r);
int len=r-l+1;
int x=log2(len);
int ans = max(st[l][x],st[r-len+1][x]);
printf("%d",ans);
}
return 0;
}