#include<cmath>
#include<iostream>
#include<math.h>
#include<vector>
#include<string.h>
using namespace std;
int main(){
cin.tie(0);
cout.tie(0);
ios::sync_with_stdio(0);
int n,m;
cin>>n>>m;
vector<int>a(n);
for(int i = 0;i<n;i++)
cin>>a[i];
int l = ceil(log2(n))+1;
int st[n][l];
memset(st,0,sizeof(st));
for(int i = 0;i<n;i++)
st[i][0] = a[i];
for(int j = 1;j<l;j++){
int d = (1<<j-1);
for(int i = 0;i+d<n;i++){
st[i][j] = max(st[i][j-1],st[i+d][j-1]);
}
}
for(int i = 0;i<m;i++){
int l, r;
cin>>l>>r;
l--,r--;
int q = ceil(log2(r-l+1))-1;
cout<<max(st[l][q],st[r-(1<<q)+1][q])<<endl;
}
return 0;
}