#include <bits/stdc++.h>
int logg[100010];
int rmq[20][100010];
FILE *fin, *fout;
int main() {
fin = fopen("rmq.in", "r");
fout = fopen("rmq.out", "w");
int i, n;
int m;
fscanf(fin, "%d%d", &n, &m);
for(i = 1;i <= n;i++)
fscanf(fin, "%d", &rmq[0][i]);
for(i = 2;i <= n;i++)
logg[i] = logg[i / 2] + 1;
for(int j = 1;j <= logg[n];j++)
for(i = 1;i+(1<<j) - 1 <= n;i++)
rmq[j][i] = std::min(rmq[j - 1][i], rmq[j - 1][i + (1 <<(j-1))]);
for(i = 1;i <= m;i++) {
int a, b;
fscanf(fin, "%d%d", &a, &b);
int l = logg[b - a + 1];
int sol = std::min(rmq[l][a], rmq[l][b - (1 << l)+1]);
fprintf(fout, "%d\n", sol);
}
fclose(fin);
fclose(fout);
return 0;
}