import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
static int[] val;
static int[] money;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//在此输入您的代码...
int n = scan.nextInt(), m = scan.nextInt();
val = new int[n];
for(int i = 0; i < n; i++)
val[i] = scan.nextInt();
money = new int[n << 2];
build(1, 1, n);
int[] ans = new int[m];
for(int i = 0; i < m; i++) {
int x = scan.nextInt(), y = scan.nextInt();
ans[i] = query(1, 1, n, x, y);
}
for(int i = 0; i < m; i++)
System.out.print(ans[i] + " ");
scan.close();
}
static void build(int cur, int l, int r) {
if(l == r) {
money[cur] = val[l - 1];
return;
}
int m = (l + r) >> 1;
build(cur << 1, l, m);
build(cur << 1 | 1, m + 1, r);
money[cur] = Math.min(money[cur << 1], money[cur << 1 | 1]);
}
static int query(int cur, int l, int r, int x, int y) {
if(x <= l && y >= r) return money[cur];
int m = (l + r) >> 1;
int ans = Integer.MAX_VALUE;
if(x <= m) ans = Math.min(ans, query(cur << 1, l, m, x, y));
if(y >= m + 1) ans = Math.min(ans, query(cur << 1 | 1, m + 1, r, x, y));
return ans;
}
}