#include <bits/stdc++.h>
#define up(i,a,b) for (int i = (int)a; i <= (int)b; i++)
#define ep emplace_back
#define all(x) x.begin(), x.end()
using namespace std;
const int maxn = 1e5 + 10;
const int LOG = log2(maxn)+2;
int a[maxn];
struct PST_node{
int l,r,sum;
};
PST_node T[maxn*LOG];
int cnt = 0;
int n,q;
int ROOT[maxn];
void push_up(int nod){
T[nod].sum = T[T[nod].l].sum + T[T[nod].r].sum;
}
void update(int& nod, int prev_nod, int l, int r, int& pos, int val){
nod = ++cnt;
T[nod] = T[prev_nod];
if (l == r){
T[nod].sum += val;
return;
}
int mid = (l+r) >> 1;
if (pos <= mid) update(T[nod].l, T[prev_nod].l, l, mid, pos, val);
else update(T[nod].r, T[prev_nod].r, mid+1, r, pos, val);
push_up(nod);
}
int query(int& nod, int& prev_nod, int l, int r, int k){
if (l == r) return l;
int mid = (l+r) >> 1;
int CNT = T[T[nod].l].sum - T[T[prev_nod].l].sum;
if (CNT >= k) return query(T[nod].l, T[prev_nod].l, l, mid, k);
return query(T[nod].r, T[prev_nod].r, mid+1, r, k - CNT);
}
vector<int> V;
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
#define Task "A"
if (fopen(Task".inp", "r")){
freopen(Task".inp", "r", stdin);
freopen(Task".out", "w", stdout);
}
cin >> n >> q;
up(i,1,n){
cin >> a[i];
V.push_back(a[i]);
}
sort(all(V));
V.resize(unique(all(V)) - V.begin());
up(i,1,n) {
int x = lower_bound(all(V), a[i]) - V.begin() + 1;
update(ROOT[i], ROOT[i-1], 1, n, x, 1);
}
V.clear();
V.push_back(-1e9 - 7);
up(i,1,n) V.push_back(a[i]);
sort(all(V));
V.resize(unique(all(V)) - V.begin());
up(i,1,q){
int l,r,k;
cin >> l >> r >> k;
int x = query(ROOT[r], ROOT[l-1], 1, n, k);
cout << V[x] << "\n";
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgdXAoaSxhLGIpIGZvciAoaW50IGkgPSAoaW50KWE7IGkgPD0gKGludCliOyBpKyspCiNkZWZpbmUgZXAgZW1wbGFjZV9iYWNrCiNkZWZpbmUgYWxsKHgpIHguYmVnaW4oKSwgeC5lbmQoKQp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IG1heG4gPSAxZTUgKyAxMDsKY29uc3QgaW50IExPRyA9IGxvZzIobWF4bikrMjsKaW50IGFbbWF4bl07CnN0cnVjdCBQU1Rfbm9kZXsKICAgIGludCBsLHIsc3VtOwp9OwpQU1Rfbm9kZSBUW21heG4qTE9HXTsKaW50IGNudCA9IDA7CmludCBuLHE7CgoKaW50IFJPT1RbbWF4bl07Cgp2b2lkIHB1c2hfdXAoaW50IG5vZCl7CiAgICBUW25vZF0uc3VtID0gVFtUW25vZF0ubF0uc3VtICsgVFtUW25vZF0ucl0uc3VtOwp9Cgp2b2lkIHVwZGF0ZShpbnQmIG5vZCwgaW50IHByZXZfbm9kLCBpbnQgbCwgaW50IHIsIGludCYgcG9zLCBpbnQgdmFsKXsKICAgIG5vZCA9ICsrY250OwogICAgVFtub2RdID0gVFtwcmV2X25vZF07CiAgICBpZiAobCA9PSByKXsKICAgICAgICBUW25vZF0uc3VtICs9IHZhbDsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpbnQgbWlkID0gKGwrcikgPj4gMTsKICAgIGlmIChwb3MgPD0gbWlkKSB1cGRhdGUoVFtub2RdLmwsIFRbcHJldl9ub2RdLmwsIGwsIG1pZCwgcG9zLCB2YWwpOwogICAgZWxzZSB1cGRhdGUoVFtub2RdLnIsIFRbcHJldl9ub2RdLnIsIG1pZCsxLCByLCBwb3MsIHZhbCk7CiAgICBwdXNoX3VwKG5vZCk7Cn0KCmludCBxdWVyeShpbnQmIG5vZCwgaW50JiBwcmV2X25vZCwgaW50IGwsIGludCByLCBpbnQgayl7CiAgICBpZiAobCA9PSByKSByZXR1cm4gbDsKICAgIGludCBtaWQgPSAobCtyKSA+PiAxOwogICAgaW50IENOVCA9IFRbVFtub2RdLmxdLnN1bSAtIFRbVFtwcmV2X25vZF0ubF0uc3VtOwogICAgaWYgKENOVCA+PSBrKSByZXR1cm4gcXVlcnkoVFtub2RdLmwsIFRbcHJldl9ub2RdLmwsIGwsIG1pZCwgayk7CiAgICByZXR1cm4gcXVlcnkoVFtub2RdLnIsIFRbcHJldl9ub2RdLnIsIG1pZCsxLCByLCBrIC0gQ05UKTsKfQoKdmVjdG9yPGludD4gVjsKCnNpZ25lZCBtYWluKCl7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoMCk7CiAgICAjZGVmaW5lIFRhc2sgIkEiCiAgICBpZiAoZm9wZW4oVGFzayIuaW5wIiwgInIiKSl7CiAgICAgICAgZnJlb3BlbihUYXNrIi5pbnAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKFRhc2siLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KCiAgICBjaW4gPj4gbiA+PiBxOwogICAgdXAoaSwxLG4pewogICAgICAgIGNpbiA+PiBhW2ldOwogICAgICAgIFYucHVzaF9iYWNrKGFbaV0pOwogICAgfQogICAgc29ydChhbGwoVikpOwogICAgVi5yZXNpemUodW5pcXVlKGFsbChWKSkgLSBWLmJlZ2luKCkpOwogICAgdXAoaSwxLG4pIHsKICAgICAgICBpbnQgeCA9IGxvd2VyX2JvdW5kKGFsbChWKSwgYVtpXSkgLSBWLmJlZ2luKCkgKyAxOwogICAgICAgIHVwZGF0ZShST09UW2ldLCBST09UW2ktMV0sIDEsIG4sIHgsIDEpOwogICAgfQoKICAgIFYuY2xlYXIoKTsKICAgIFYucHVzaF9iYWNrKC0xZTkgLSA3KTsKICAgIHVwKGksMSxuKSBWLnB1c2hfYmFjayhhW2ldKTsKICAgIHNvcnQoYWxsKFYpKTsKICAgIFYucmVzaXplKHVuaXF1ZShhbGwoVikpIC0gVi5iZWdpbigpKTsKCiAgICB1cChpLDEscSl7CiAgICAgICAgaW50IGwscixrOwogICAgICAgIGNpbiA+PiBsID4+IHIgPj4gazsKICAgICAgICBpbnQgeCA9IHF1ZXJ5KFJPT1Rbcl0sIFJPT1RbbC0xXSwgMSwgbiwgayk7CiAgICAgICAgY291dCA8PCBWW3hdIDw8ICJcbiI7CiAgICB9Cn0K