#include<bits/stdc++.h>
using namespace std;
int n,m,mx[100100][20],lg[100100];
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>mx[i][0];
for(int i=2;i<=n;i++)lg[i]=lg[(i>>1)]+1;
for(int i=1;i<=lg[n];i++){
for(int j=1;j+(1<<i)-1<=n;j++){
mx[j][i]=max(mx[j][i-1],mx[j+(1<<i-1)][i-1]);
}
}
for(int i=1,l,r;i<=m;i++){
cin>>l>>r;
int x=lg[r-l+1];
cout<<max(mx[l][x],mx[r-(1<<x)+1][x])<<endl;
}
return 0;
}