#include<bits/stdc++.h>
using namespace std;
const int x = 2e5+2;
int n,m,l,r,a[x],stmax[x][25];
void init(){
for (int i=1;i<=n;i++) stmax[i][0]=a[i];
for (int j=1,b=1;j<25;j++,b*=2){
for (int i=1;i<=n-2*b+1;i++){
stmax[i][j]=max(stmax[i][j-1],stmax[i+b][j-1]);
}
}
}
int max_query(int l,int r){
int len = log2(r-l+1);
return max(stmax[l][len],stmax[r-(1<<len)+1][len]);
}
int main(){
cin >> n >> m;
for(int i=1;i<=n;i++) cin >> a[i];
for(int i=1;i<=m;i++){
cin >> l >> r;
cout << max_query(l,r);
}
return 0;
}