#include <bits/stdc++.h>
using namespace std;
const int N=1e5+2;
vector<int> seg[N];
pair<int, int> B[N];
int arr[N];
void build(int ci, int st, int end, pair<int, int>* B)
{
if (st == end) {
seg[ci].push_back(B[st].second);
return;
}
int mid = (st + end) / 2;
build(2 * ci + 1, st, mid, B);
build(2 * ci + 2, mid + 1, end, B);
merge(seg[2 * ci + 1].begin(), seg[2 * ci + 1].end(), seg[2 * ci + 2].begin(), seg[2 * ci + 2].end(), back_inserter(seg[ci]));
}
int query(int ci, int st, int end, int l, int r, int k)
{
if (st == end)
return seg[ci][0];
int p = upper_bound(seg[2 * ci + 1].begin(), seg[2 * ci + 1].end(), r) - lower_bound(seg[2 * ci + 1].begin(), seg[2 * ci + 1].end(), l);
int mid = (st + end) / 2;
if (p >= k)
return query(2 * ci + 1, st, mid, l, r, k);
else
return query(2 * ci + 2, mid + 1, end, l, r, k - p);
}
int main()
{
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>arr[i];
}
for (int i = 0; i < n; i++) {
B[i] = { arr[i], i };
}
sort(B, B + n);
build(0, 0, n - 1, B);
int l,r,x;
for(int i=0;i<m;i++){
cin>>l>>r>>x;
cout<<arr[query(0,0,n-1,l-1,r-1,x)]<<endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAp1c2luZyBuYW1lc3BhY2Ugc3RkOyAKCmNvbnN0IGludCBOPTFlNSsyOyAKCnZlY3RvcjxpbnQ+IHNlZ1tOXTsgCnBhaXI8aW50LCBpbnQ+IEJbTl07IAppbnQgYXJyW05dOwoKdm9pZCBidWlsZChpbnQgY2ksIGludCBzdCwgaW50IGVuZCwgcGFpcjxpbnQsIGludD4qIEIpIAp7IAoJaWYgKHN0ID09IGVuZCkgeyAKCQlzZWdbY2ldLnB1c2hfYmFjayhCW3N0XS5zZWNvbmQpOyAKCQlyZXR1cm47IAoJfSAKCWludCBtaWQgPSAoc3QgKyBlbmQpIC8gMjsgCglidWlsZCgyICogY2kgKyAxLCBzdCwgbWlkLCBCKTsgCglidWlsZCgyICogY2kgKyAyLCBtaWQgKyAxLCBlbmQsIEIpOyAKCW1lcmdlKHNlZ1syICogY2kgKyAxXS5iZWdpbigpLCBzZWdbMiAqIGNpICsgMV0uZW5kKCksIHNlZ1syICogY2kgKyAyXS5iZWdpbigpLCBzZWdbMiAqIGNpICsgMl0uZW5kKCksIGJhY2tfaW5zZXJ0ZXIoc2VnW2NpXSkpOyAKfSAKaW50IHF1ZXJ5KGludCBjaSwgaW50IHN0LCBpbnQgZW5kLCBpbnQgbCwgaW50IHIsIGludCBrKSAKeyAKCWlmIChzdCA9PSBlbmQpIAoJCXJldHVybiBzZWdbY2ldWzBdOyAKCWludCBwID0gdXBwZXJfYm91bmQoc2VnWzIgKiBjaSArIDFdLmJlZ2luKCksIHNlZ1syICogY2kgKyAxXS5lbmQoKSwgcikgLSBsb3dlcl9ib3VuZChzZWdbMiAqIGNpICsgMV0uYmVnaW4oKSwgc2VnWzIgKiBjaSArIDFdLmVuZCgpLCBsKTsgCgoJaW50IG1pZCA9IChzdCArIGVuZCkgLyAyOyAKCWlmIChwID49IGspIAoJCXJldHVybiBxdWVyeSgyICogY2kgKyAxLCBzdCwgbWlkLCBsLCByLCBrKTsgCgllbHNlCgkJcmV0dXJuIHF1ZXJ5KDIgKiBjaSArIDIsIG1pZCArIDEsIGVuZCwgbCwgciwgayAtIHApOyAKfSAKaW50IG1haW4oKSAKeyAKCWludCBuLG07CgljaW4+Pm4+Pm07Cglmb3IoaW50IGk9MDtpPG47aSsrKXsKCQljaW4+PmFycltpXTsKCX0KCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7IAoJCUJbaV0gPSB7IGFycltpXSwgaSB9OyAKCX0gCglzb3J0KEIsIEIgKyBuKTsgCglidWlsZCgwLCAwLCBuIC0gMSwgQik7IAoKCWludCBsLHIseDsKCglmb3IoaW50IGk9MDtpPG07aSsrKXsKCQljaW4+Pmw+PnI+Png7CgkJY291dDw8YXJyW3F1ZXJ5KDAsMCxuLTEsbC0xLHItMSx4KV08PGVuZGw7Cgl9CglyZXR1cm4gMDsKfSAK