#include<bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
using namespace std;
int main() {
int n, q; cin >> n >> q;
vector<vector<int>> cards(n + 1);
rep(i, n) {
int x; cin >> x; cards[0].push_back(x);
}
int last = 0;
rep(i, n) {
int l = 0, r = n / 2;
while (l < n / 2 || r < n) {
if (l == n / 2) cards[i+1].push_back(cards[i][r++]);
else if (r == n) cards[i+1].push_back(cards[i][l++]);
else if (cards[i][l] < cards[i][r]) cards[i+1].push_back(cards[i][l++]);
else cards[i+1].push_back(cards[i][r++]);
}
if (cards[i] == cards[i+1]) {
last = i; break;
}
}
while (q--) {
int t, i; cin >> t >> i;
cout << cards[min(t, last)][i-1] << endl;
}
}