/*
author : [ Godsent ]
created : 2025.08.16 15:39:24
*/
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define el "\n"
#define int long long
#define lb lower_bound
#define ub upper_bound
#define fi first
#define se second
#define sz(x) ((int)(x).size())
#define all(v) (v).begin(), (v).end()
#define pb push_back
#define prs(n) fixed << setprecision(n)
const int mod = 1e9 + 7;
const int N = 1e5 + 5;
const int INF = 1e18;
using namespace std;
using namespace __gnu_pbds;
template <typename T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
int n, q;
int a[N], bit[N], res[N];
pair<int,int> b[N];
void update(int i) {
while(i <= n) {
bit[i] += 1;
i += i & -i;
}
}
int get(int i) {
int res = 0;
while(i > 0) {
res += bit[i];
i -= i & -i;
}
return res;
}
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
#ifndef ONLINE_JUDGE
freopen("test.in", "r", stdin);
freopen("test.out", "w", stdout);
#endif
cin >> n >> q;
int l = INT_MAX, r = INT_MIN;
for (int i = 1; i <= n; i++) {
cin >> a[i];
l = min(l, a[i]);
r = max(r, a[i]);
b[i] = {a[i], i};
}
sort(b + 1, b + 1 + n);
vector<vector<int>> bucket(q, vector<int>(7));
for (int i = 0; i < q; i++) {
int u, v, k;
cin >> u >> v >> k;
bucket[i][1] = l;
bucket[i][2] = r;
bucket[i][3] = u;
bucket[i][4] = v;
bucket[i][5] = k;
bucket[i][6] = i + 1;
}
bool done = false;
while(!done) {
done = true;
for (int i = 0; i < q; i++) {
if (bucket[i][1] <= bucket[i][2]) {
done = false;
int mid = (bucket[i][1] + bucket[i][2]) >> 1;
bucket[i][0] = mid;
}
}
if (done) break;
sort(all(bucket));
int idx = 1;
for (int i = 0; i < q; i++) {
if (bucket[i][1] > bucket[i][2]) continue;
while(idx <= n && bucket[i][0] >= b[idx].fi) {
update(b[idx].se);
idx++;
}
int s = get(bucket[i][4]) - get(bucket[i][3] - 1);
if (s >= bucket[i][5]) {
res[bucket[i][6]] = bucket[i][0];
bucket[i][2] = bucket[i][0] - 1;
}
else bucket[i][1] = bucket[i][0] + 1;
}
fill(bit + 1, bit + 1 + n, 0);
}
for (int i = 1; i <= q; i++) cout << res[i] << el;
return 0;
}
LyoKICAgIGF1dGhvciAgOiBbIEdvZHNlbnQgXQogICAgY3JlYXRlZCA6IDIwMjUuMDguMTYgMTU6Mzk6MjQKKi8KCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgojaW5jbHVkZSA8ZXh0L3BiX2RzL2Fzc29jX2NvbnRhaW5lci5ocHA+CiNpbmNsdWRlIDxleHQvcGJfZHMvdHJlZV9wb2xpY3kuaHBwPgojZGVmaW5lIGVsICJcbiIKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgbGIgbG93ZXJfYm91bmQKI2RlZmluZSB1YiB1cHBlcl9ib3VuZAojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgc3ooeCkgKChpbnQpKHgpLnNpemUoKSkKI2RlZmluZSBhbGwodikgKHYpLmJlZ2luKCksICh2KS5lbmQoKQojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIHBycyhuKSBmaXhlZCA8PCBzZXRwcmVjaXNpb24obikKCmNvbnN0IGludCBtb2QgPSAxZTkgKyA3Owpjb25zdCBpbnQgTiA9IDFlNSArIDU7CmNvbnN0IGludCBJTkYgPSAxZTE4OwoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdXNpbmcgbmFtZXNwYWNlIF9fZ251X3BiZHM7CnRlbXBsYXRlIDx0eXBlbmFtZSBUPgp1c2luZyBvcmRlcmVkX3NldCA9IHRyZWU8VCwgbnVsbF90eXBlLCBsZXNzPFQ+LCByYl90cmVlX3RhZywgdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlPjsKCmludCBuLCBxOwppbnQgYVtOXSwgYml0W05dLCByZXNbTl07CnBhaXI8aW50LGludD4gYltOXTsKCnZvaWQgdXBkYXRlKGludCBpKSB7CiAgd2hpbGUoaSA8PSBuKSB7CiAgICBiaXRbaV0gKz0gMTsKICAgIGkgKz0gaSAmIC1pOwogIH0KfQoKaW50IGdldChpbnQgaSkgewogIGludCByZXMgPSAwOwogIHdoaWxlKGkgPiAwKSB7CiAgICByZXMgKz0gYml0W2ldOwogICAgaSAtPSBpICYgLWk7CiAgfQogIHJldHVybiByZXM7Cn0KCnNpZ25lZCBtYWluKCkgewogIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogIGNpbi50aWUoMCk7CiAgY291dC50aWUoMCk7CgojaWZuZGVmIE9OTElORV9KVURHRQogIGZyZW9wZW4oInRlc3QuaW4iLCAiciIsIHN0ZGluKTsKICBmcmVvcGVuKCJ0ZXN0Lm91dCIsICJ3Iiwgc3Rkb3V0KTsKI2VuZGlmCgogIGNpbiA+PiBuID4+IHE7CiAgaW50IGwgPSBJTlRfTUFYLCByID0gSU5UX01JTjsKICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgIGNpbiA+PiBhW2ldOwogICAgbCA9IG1pbihsLCBhW2ldKTsKICAgIHIgPSBtYXgociwgYVtpXSk7CiAgICBiW2ldID0ge2FbaV0sIGl9OwogIH0KCiAgc29ydChiICsgMSwgYiArIDEgKyBuKTsKCiAgdmVjdG9yPHZlY3RvcjxpbnQ+PiBidWNrZXQocSwgdmVjdG9yPGludD4oNykpOwogIGZvciAoaW50IGkgPSAwOyBpIDwgcTsgaSsrKSB7CiAgICBpbnQgdSwgdiwgazsKICAgIGNpbiA+PiB1ID4+IHYgPj4gazsKICAgIGJ1Y2tldFtpXVsxXSA9IGw7CiAgICBidWNrZXRbaV1bMl0gPSByOwogICAgYnVja2V0W2ldWzNdID0gdTsKICAgIGJ1Y2tldFtpXVs0XSA9IHY7CiAgICBidWNrZXRbaV1bNV0gPSBrOwogICAgYnVja2V0W2ldWzZdID0gaSArIDE7CiAgfQoKICBib29sIGRvbmUgPSBmYWxzZTsKICB3aGlsZSghZG9uZSkgewogICAgZG9uZSA9IHRydWU7CiAgCiAgICBmb3IgKGludCBpID0gMDsgaSA8IHE7IGkrKykgewogICAgICBpZiAoYnVja2V0W2ldWzFdIDw9IGJ1Y2tldFtpXVsyXSkgewogICAgICAgIGRvbmUgPSBmYWxzZTsKICAgICAgICBpbnQgbWlkID0gKGJ1Y2tldFtpXVsxXSArIGJ1Y2tldFtpXVsyXSkgPj4gMTsKICAgICAgICBidWNrZXRbaV1bMF0gPSBtaWQ7CiAgICAgIH0KICAgIH0KCiAgICBpZiAoZG9uZSkgYnJlYWs7CgogICAgc29ydChhbGwoYnVja2V0KSk7CgogICAgaW50IGlkeCA9IDE7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHE7IGkrKykgewogICAgICBpZiAoYnVja2V0W2ldWzFdID4gYnVja2V0W2ldWzJdKSBjb250aW51ZTsKICAgICAgd2hpbGUoaWR4IDw9IG4gJiYgYnVja2V0W2ldWzBdID49IGJbaWR4XS5maSkgewogICAgICAgIHVwZGF0ZShiW2lkeF0uc2UpOwogICAgICAgIGlkeCsrOwogICAgICB9CiAgICAgIGludCBzID0gZ2V0KGJ1Y2tldFtpXVs0XSkgLSBnZXQoYnVja2V0W2ldWzNdIC0gMSk7CiAgICAgIGlmIChzID49IGJ1Y2tldFtpXVs1XSkgewogICAgICAgIHJlc1tidWNrZXRbaV1bNl1dID0gYnVja2V0W2ldWzBdOwogICAgICAgIGJ1Y2tldFtpXVsyXSA9IGJ1Y2tldFtpXVswXSAtIDE7CiAgICAgIH0KICAgICAgZWxzZSBidWNrZXRbaV1bMV0gPSBidWNrZXRbaV1bMF0gKyAxOwogICAgfQogICAgZmlsbChiaXQgKyAxLCBiaXQgKyAxICsgbiwgMCk7CiAgfQoKICBmb3IgKGludCBpID0gMTsgaSA8PSBxOyBpKyspIGNvdXQgPDwgcmVzW2ldIDw8IGVsOwoKICByZXR1cm4gMDsKfQ==