#include<bits/stdc++.h>
using namespace std;
int main(){
int N,M;
cin>>N>>M;
int L=log2(N),a[N][L+1];
for(int i=0;i<N;i++) a[i][0]=read();
for(int i=0;i<L;i++)
for(int j=0;j<N-(1<<i);j++)
a[j][i+1]=max(a[j][i],a[j+(1<<i)][i]);
while(M--){
int ans=0,r,l;
cin>>l>>r;
l--;
while(r!=l){
int len=log2(r-l);
r-=1<<len;
ans=max(ans,a[r][len]);
}
cout<<ans<<endl;
}
return 0;
}
试过快读但还是不行。。
加O2反而变慢。。