#include <bits/stdc++.h>
using namespace std;
int sp[100000][20];
int logg( int a ){
int cnt = 0;
while( a > 0 ){
cnt++;
a /= 2;
}
return cnt - 1;
}
int main(){
ifstream cin( "rmq.in" );
ofstream cout( "rmq.out" );
int n, m, i, k, a, b, j, l;
cin >> n >> m;
for( i = 0; i < n; i++ ){
cin >> sp[i][0];
}
k = logg(n);
for( j = 1; j <= k; j++ ){
for( i = 0; i < n - ( 1 << j ) + 1; i++ )
sp[i][j] = min ( sp[i][j - 1], sp[i + ( 1 << ( j - 1 ) )][j - 1] );
}
for( i = 0; i < m; i++ ){
cin >> a >> b;
a--;
b--;
l = b - a + 1;
k = logg( l );
cout << min( sp[a][k], sp[a + l - ( 1 << k )][k] ) << "\n";
}
return 0;
}