#include <bits/stdc++.h>
#define dm 100002
#define lbmax 18
#define ll long long
using namespace std;
ifstream fin("rmq.in");
ofstream fout("rmq.out");
ll lb[dm], v[dm];
ll rmq[lbmax][dm];
ll n, m, k, difference, a, b, lg2, shift;
int main()
{
fin >> n >> m;
for(int i = 1; i <= n; i++)
fin >> v[i];
for(int i = 2; i <= n; i++)
lb[i] = lb[i/2] + 1;
for(int i = 1; i <= n; i++)
rmq[0][i] = v[i];
for(int i = 1; (1<<i) <= n; i++)
{
for(int j = 1; j <= n - (1<<i) + 1; j++)
{
k = (1<<(i-1));
rmq[i][j] = min(rmq[i - 1][j], rmq[i - 1][j + k]);
}
}
for(int i = 1; i <= m; i++)
{
fin >> a >> b;
difference = b - a + 1;
lg2 = lb[difference];
shift = difference - (1<<lg2);
fout << min(rmq[lg2][a], rmq[lg2][a + shift]) << "\n";
}
return 0;
}