#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll N=1e5+10;
const ll M=(ll)(log2(N));
ll n,m;
ll a[N][M];
ll luogu(ll x,ll y) {
ll k=(ll)(log2(y-x+1));
return max(a[x][k],a[y-(1<<k)+1][k]);
}
int main(){
scanf("%lld%lld",&n,&m);
for(ll i=1; i<=n; i++) scanf("%lld",&a[i][0]);
for(ll j=1; (1<<j)<=n; j++)
for(ll i=1; i+(1<<j)-1<=n; i++)
a[i][j]=max(a[i][j-1],a[i+(1<<(j-1))][j-1]);
while(m--) {
ll x,y;
scanf("%lld%lld",&x,&y);
ll t=luogu(x,y);
printf("%lld\n",t);
}
return 0;
}