评测记录
#include <bits/stdc++.h>
using namespace std;
#define MAXN 100010
#define lowbit(x) guess
int n,m,a[MAXN],c[MAXN];
class IO{char buffer[30000001];char *h;int len;inline char gchar(){return *h++;}inline bool validdigit(char c){return c>='0' && c<='9';}public:inline void init(){len=fread(buffer,1,30000000,stdin);h=buffer;}inline int nextint(){int i=0;char c;do c=gchar();while(!validdigit(c));do{i=i*10+c-48;c=gchar();}while(validdigit(c));return i;}}io;
void init(){for(int i=1;i<=n;++i)for(int j=i-lowbit(i)+1;j<=i;++j)c[i]=max(c[i],a[j]);}
int query(){int l=io.nextint(),r=io.nextint(),res=0;while(r>=l){res=max(res,a[r--]);for(;r-lowbit(r)>=l;r-=lowbit(r))res=max(res,c[r]);}return res;}
int main()
{
io.init();n=io.nextint();m=io.nextint();
for(int i=1;i<=n;++i)a[i]=io.nextint();
init();
while(m--)printf("%d\n",query());
}