#include<bits/stdc++.h>
using namespace std;
int f(long long a, long long n)
{
int sum = 1;
while(n--)
{
sum *= a;
}
return sum;
}
int log(int a)
{
int i = 1;
for(; i * i <= a; i++){}
return i - 1;
}
int a[100001][400];
int main()
{
ios::sync_with_stdio(0);cin.tie(0);
int n, m;
cin >> n >> m;
for(int i = 1; i <= n; i++)
{
cin >> a[i][0];
}
for(int j = 1; j <= log2(n); j++)
{
for(int i = 1; i <= n; i++)
{
a[i][j] = max(a[i][j - 1], a[i + f(2, j - 1)][j - 1]);
}
}
for(int i = 1; i <= m; i++)
{
int l, r;
cin >> l >> r;
cout << max(a[l][log(r - l + 1)], a[r - (1 << log(r - l + 1)) + 1][log(r - l + 1)]) << endl;
}
return 0;
}