#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("rmq.in");
ofstream fout("rmq.out");
int a[100005][20];
int lg2(int x)
{
int rez = 0;
while(x > 1)
{
x >>= 1;
rez++;
}
return rez;
}
int main()
{
int n, q;
fin >> n >> q;
for(int i = 1; i <= n; i++)
fin >> a[i][0];
for(int j = 1; (1 << j) <= n; j++)
{
int l = n - (1 << j) + 1;
for(int i = 1; i <= l; i++)
a[i][j] = min(a[i][j - 1], a[(1 << (j - 1)) + i][j - 1]);
}
int x, y;
for(int i = 1; i <= q; i++)
{
fin >> x >> y;
int l = lg2(y - x);
fout << min(a[x][l], a[y - (1 << l) + 1][l]) << '\n';
}
fin.close();
fout.close();
return 0;
}