#include <bits/stdc++.h>
using namespace std;
int xdsmax[200005],n,q,a[200005],l,r;
int js_max(int l,int r,int w)
{
if(l==r)return xdsmax[w]=a[l];
int mid=(l+r)/2;
return xdsmax[w]=max(js_max(l,mid,w*2),js_max(mid+1,r,w*2+1));
}
int q_max(int l,int r,int ml,int mr,int w)
{
if(l==r)return xdsmax[w];
if(l>=ml&&r<=mr)return xdsmax[w];
int ans=INT_MIN,mid=(l+r)/2;
if(ml<=mid)ans=max(ans,q_max(l,mid,ml,mr,w*2));
if(mr>mid)ans=max(ans,q_max(mid+1,r,ml,mr,w*2+1));
return ans;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n>>q;
for(int i=1;i<=n;i++)cin>>a[i];
js_max(1,n,1);
while(q--)
{
cin>>l>>r;
cout<<q_max(1,n,l,r,1)<<"\n";
}
}