#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
const int N=100001;
int n,m;
int log2[N],a[N];
int larger[N][22];
int read()
{
int ans=0;
char c=getchar();
while(!isdigit(c))
c=getchar();
while(isdigit(c))
{
ans=ans*10+c-'0';
c=getchar();
}
return ans;
}
int main()
{
n=read();
m=read();
for(int i=1;i<=n;i++)
{
larger[i][0]=read();
}
for(int i=2;i<=n;i++)
{
log2[i]=log2[i/2]+1;
}
for(int i=1;i<22;i++)
{
for(int j=1;j+(1<<i)-1<=n;j++){
larger[j][i]=max(larger[j][i-1],larger[j+(1<<(i-1))][i-1]);
}
}
for(int i=1;i<=m;i++)
{
int l,r;
l=read();
r=read();
int s=log2[r-l+1];
cout<< max(larger[l][s],larger[r-(1<<s)+1][s])<<endl;
}
}