#include<bits/stdc++.h>
using namespace std;
long long a,f,s[100100],d,lg[100100],dp[100100][20];
int main()
{
scanf("%lld%lld",&a,&f);
lg[1]=0;
for(int i=2;i<=a;i++)
lg[i]=lg[i>>1]+1;
for(int i=1;i<=a;i++)
scanf("%lld",&dp[i][0]);
for(int j=1;j<=lg[a];j++)
for(int i=1;i<=a-(1<<j)+1;i++)
dp[i][j]=max(dp[i][j-1],dp[i+(1<<(j-1))][j-1]);
for(int i=1;i<=f;i++)
{
int z,x;
cin>>z>>x;
int c=lg[x-z+1];
printf("%lld\n",max(dp[z][c],dp[x-(1<<c)+1][c]));
}
return 0;
}