#include <bits/stdc++.h>
using namespace std;
int a[100005],f[100005][32],ans[100005];
int ff(int x,int y, int s) {
return min(f[x][s],f[y-(1<<s)+1][s]);
}
int main() {
int m,n;
scanf("%d%d", &m,&n);
for(int i = 1; i <= m; i++) {scanf("%d", &a[i]);f[i][0] = a[i];}
//for(int i = 1; i <= n; i++) scanf("%d%d", &b[i][0], &b[i][1]);
int t = log(m)/log(2) +1;
for(int j = 1; j < t; j++) {
for(int i = 1; i <= m-(1<<j); i++) {
f[i][j] = min(f[i][j-1],f[i+(1<<(j-1))][j-1]);
}
}
for(int i = 1; i <= n; i++) {
int ll,rr;
scanf("%d%d", &ll, &rr);
int k = log(rr-ll+1)/log(2);
ans[i] = ff(ll,rr,k);
}
for(int i = 1; i <= n; i++) printf("%d ", ans[i]);
return 0;
}