#include <cstdio>
#include <iostream>
#include <string>
#define oo 987654321
using namespace std;

int n, m, a[100010], b[1001], sz;

int f(int l, int r)
{
    int ret = -100000000;
    for(int i = l ; i <= r ; )
        if( i%sz == 0 and i+sz < r ) ret =max(ret, b[i/sz]), i+=sz;
        else ret = max(ret, a[i]), i++;
    return ret;
}

int main()
{
    freopen(".20.in","r",stdin);
    freopen(".20.out","w",stdout);
    cin>>n>>m;
    for(sz = 1 ; sz*sz<n ; sz++);
    for(int i = 0 ; i < sz ; i++ ) b[i] = -oo;
    for(int i = 0 ; i < n ; i++ ) cin>>a[i], b[i/sz] = max(b[i/sz], a[i]);
    while( m-- )
    {
        int l, r;
        cin>>l>>r; l--, r--;
        cout<<f(l, r)<<endl;
    }
}
