// LET ME COOK
#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define sz(x) (int)x.size()
using namespace std;
struct BIT {
vector<int> bit1, bit2;
int n;
void init(int _n) {
n = _n;
bit1.assign(n+5, 0);
bit2.assign(n+5, 0);
}
void updatePoint(vector<int>& b, int u, int v) {
int idx = u;
while (idx <= n) {
b[idx] += v;
idx += (idx & (-idx));
}
}
void updateRange(int l, int r, int v) {
updatePoint(bit1, l, (n - l + 1) * v);
updatePoint(bit1, r + 1, -(n - r) * v);
updatePoint(bit2, l, v);
updatePoint(bit2, r + 1, -v);
}
int getsum(vector<int>& b, int u) {
int idx = u, ans = 0;
while (idx > 0) {
ans += b[idx];
idx -= (idx & (-idx));
}
return ans;
}
int prefixsum(int u) {
return getsum(bit1, u) - getsum(bit2, u) * (n - u);
}
int rangesum(int l, int r) {
return prefixsum(r) - prefixsum(l - 1);
}
};
struct query {
int l, r, k, id;
};
BIT bit;
const int N = 2e5+5;
const int T = 2e5;
vector<int> have[N];
vector<int> ans(N);
vector<query> q;
int a[N];
int n, que;
void bs(int l, int r, vector<query> Q) {
if (l==r || Q.empty()) {
for(auto p : Q) {
ans[p.id] = l;
}
return;
}
int mid = l+r>>1;
vector<query> QL, QR;
if (l <= mid) {
for(int i = l; i <= mid; i++) {
for(int id : have[i]) {
bit.updateRange(id, id, 1);
}
}
}
for(int i = 0 ; i < sz(Q); i++) {
int tmp = bit.rangesum(Q[i].l, Q[i].r);
if (tmp >= Q[i].k) {
QL.push_back(Q[i]);
} else {
Q[i].k -= tmp;
QR.push_back(Q[i]);
}
}
if (l <= mid) {
for(int i = l; i <= mid; i++) {
for(int id : have[i]) {
bit.updateRange(id, id, -1);
}
}
}
bit.init(n+5);
bs(l, mid, QL);
bs(mid+1, r, QR);
}
void Semicolon() {
cin >> n >> que;
for(int i = 1; i <= n; i++) {
cin >> a[i];
have[a[i]].push_back(i);
}
for(int i = 1; i <= que; i++) {
int l, r; cin >> l >> r;
int len = r-l+1;
int check = (len+1)/2;
q.push_back({l, r, check, i});
}
bit.init(n+5);
bs(1, T, q);
for(int i = 1; i <= que; i++) {
cout << ans[i] << endl;
}
}
signed main() {
ios_base::sync_with_stdio(0); cin.tie(0);
//freopen("", "r", stdin);
//freopen("", "w", stdout);
//freopen("input.txt", "r", stdin);
Semicolon();
return 0;
}
Ly8gTEVUIE1FIENPT0sKI2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgZW5kbCAnXG4nCiNkZWZpbmUgc3ooeCkgKGludCl4LnNpemUoKQp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IEJJVCB7CiAgICB2ZWN0b3I8aW50PiBiaXQxLCBiaXQyOwogICAgaW50IG47CgogICAgdm9pZCBpbml0KGludCBfbikgewogICAgICAgIG4gPSBfbjsKICAgICAgICBiaXQxLmFzc2lnbihuKzUsIDApOwogICAgICAgIGJpdDIuYXNzaWduKG4rNSwgMCk7CiAgICB9CgogICAgdm9pZCB1cGRhdGVQb2ludCh2ZWN0b3I8aW50PiYgYiwgaW50IHUsIGludCB2KSB7CiAgICAgICAgaW50IGlkeCA9IHU7CiAgICAgICAgd2hpbGUgKGlkeCA8PSBuKSB7CiAgICAgICAgICAgIGJbaWR4XSArPSB2OwogICAgICAgICAgICBpZHggKz0gKGlkeCAmICgtaWR4KSk7CiAgICAgICAgfQogICAgfQoKICAgIHZvaWQgdXBkYXRlUmFuZ2UoaW50IGwsIGludCByLCBpbnQgdikgewogICAgICAgIHVwZGF0ZVBvaW50KGJpdDEsIGwsIChuIC0gbCArIDEpICogdik7CiAgICAgICAgdXBkYXRlUG9pbnQoYml0MSwgciArIDEsIC0obiAtIHIpICogdik7CiAgICAgICAgdXBkYXRlUG9pbnQoYml0MiwgbCwgdik7CiAgICAgICAgdXBkYXRlUG9pbnQoYml0MiwgciArIDEsIC12KTsKICAgIH0KCiAgICBpbnQgZ2V0c3VtKHZlY3RvcjxpbnQ+JiBiLCBpbnQgdSkgewogICAgICAgIGludCBpZHggPSB1LCBhbnMgPSAwOwogICAgICAgIHdoaWxlIChpZHggPiAwKSB7CiAgICAgICAgICAgIGFucyArPSBiW2lkeF07CiAgICAgICAgICAgIGlkeCAtPSAoaWR4ICYgKC1pZHgpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGFuczsKICAgIH0KCiAgICBpbnQgcHJlZml4c3VtKGludCB1KSB7CiAgICAgICAgcmV0dXJuIGdldHN1bShiaXQxLCB1KSAtIGdldHN1bShiaXQyLCB1KSAqIChuIC0gdSk7CiAgICB9CgogICAgaW50IHJhbmdlc3VtKGludCBsLCBpbnQgcikgewogICAgICAgIHJldHVybiBwcmVmaXhzdW0ocikgLSBwcmVmaXhzdW0obCAtIDEpOwogICAgfQp9OwoKc3RydWN0IHF1ZXJ5IHsKICAgIGludCBsLCByLCBrLCBpZDsKfTsKCkJJVCBiaXQ7CmNvbnN0IGludCBOID0gMmU1KzU7CmNvbnN0IGludCBUID0gMmU1Owp2ZWN0b3I8aW50PiBoYXZlW05dOwp2ZWN0b3I8aW50PiBhbnMoTik7CnZlY3RvcjxxdWVyeT4gcTsKaW50IGFbTl07CmludCBuLCBxdWU7Cgp2b2lkIGJzKGludCBsLCBpbnQgciwgdmVjdG9yPHF1ZXJ5PiBRKSB7CiAgICBpZiAobD09ciB8fCBRLmVtcHR5KCkpIHsKICAgICAgICBmb3IoYXV0byBwIDogUSkgewogICAgICAgICAgICBhbnNbcC5pZF0gPSBsOwogICAgICAgIH0KICAgICAgICByZXR1cm47CiAgICB9CgogICAgaW50IG1pZCA9IGwrcj4+MTsKCiAgICB2ZWN0b3I8cXVlcnk+IFFMLCBRUjsKCiAgICBpZiAobCA8PSBtaWQpIHsKICAgICAgICBmb3IoaW50IGkgPSBsOyBpIDw9IG1pZDsgaSsrKSB7CiAgICAgICAgICAgIGZvcihpbnQgaWQgOiBoYXZlW2ldKSB7CiAgICAgICAgICAgICAgICBiaXQudXBkYXRlUmFuZ2UoaWQsIGlkLCAxKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCgogICAgZm9yKGludCBpID0gMCA7IGkgPCBzeihRKTsgaSsrKSB7CiAgICAgICAgaW50IHRtcCA9IGJpdC5yYW5nZXN1bShRW2ldLmwsIFFbaV0ucik7CgogICAgICAgIGlmICh0bXAgPj0gUVtpXS5rKSB7CiAgICAgICAgICAgIFFMLnB1c2hfYmFjayhRW2ldKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBRW2ldLmsgLT0gdG1wOwogICAgICAgICAgICBRUi5wdXNoX2JhY2soUVtpXSk7CiAgICAgICAgfQogICAgfQoKICAgIGlmIChsIDw9IG1pZCkgewogICAgICAgIGZvcihpbnQgaSA9IGw7IGkgPD0gbWlkOyBpKyspIHsKICAgICAgICAgICAgZm9yKGludCBpZCA6IGhhdmVbaV0pIHsKICAgICAgICAgICAgICAgIGJpdC51cGRhdGVSYW5nZShpZCwgaWQsIC0xKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBiaXQuaW5pdChuKzUpOwogICAgYnMobCwgbWlkLCBRTCk7CiAgICBicyhtaWQrMSwgciwgUVIpOwp9Cgp2b2lkIFNlbWljb2xvbigpIHsKICAgIGNpbiA+PiBuID4+IHF1ZTsKCiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgIGNpbiA+PiBhW2ldOwogICAgICAgIGhhdmVbYVtpXV0ucHVzaF9iYWNrKGkpOwogICAgfQoKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gcXVlOyBpKyspIHsKICAgICAgICBpbnQgbCwgcjsgY2luID4+IGwgPj4gcjsKICAgICAgICBpbnQgbGVuID0gci1sKzE7CiAgICAgICAgaW50IGNoZWNrID0gKGxlbisxKS8yOwogICAgICAgIHEucHVzaF9iYWNrKHtsLCByLCBjaGVjaywgaX0pOwogICAgfQoKICAgIGJpdC5pbml0KG4rNSk7CiAgICBicygxLCBULCBxKTsKCiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IHF1ZTsgaSsrKSB7CiAgICAgICAgY291dCA8PCBhbnNbaV0gPDwgZW5kbDsKICAgIH0KfQoKc2lnbmVkIG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOwogICAgLy9mcmVvcGVuKCIiLCAiciIsIHN0ZGluKTsKICAgIC8vZnJlb3BlbigiIiwgInciLCBzdGRvdXQpOwogICAgLy9mcmVvcGVuKCJpbnB1dC50eHQiLCAiciIsIHN0ZGluKTsKICAgIFNlbWljb2xvbigpOwoKICAgIHJldHVybiAwOwp9