#include <bits/stdc++.h>
using namespace std;
struct Data{
int l, r, bigger, id;
};
bool comp(Data a, Data b){
cout << "HH";
return a.bigger > b.bigger;
}
int bit[200005], ans[200005];pair<int, int> arr[200005];
int N, Q;
Data ask[200005];
void update(int i){
for(; i <= N; i+=i&-i)
bit[i]++;
}
int getans(int i){
int res = 0;
for(; i > 0; i-=i&-i)
res += bit[i];
return res;
}
int main() {
cin >> N;
for(int i = 0; i < N; i++){
cin >> arr[i].first;
arr[i].second = i;
}
cin >> Q;
cout << N << " " << Q << "\n";
for(int i = 0; i < Q; i++){
cin >> ask[i].l >> ask[i].r >> ask[i].bigger;
ask[i].l--;
ask[i].r--;
ask[i].id = i;
}
cout << "success\n";
sort(arr, arr+N, greater<pair<int, int>>());
sort(ask, ask+Q, comp);
cout << "success\n";
int counter = 0;
for(int i = 0; i < N; i++){
while(ask[counter].bigger < arr[i].first && counter < Q){
ans[ask[counter].id] = getans(ask[counter].r + 1) + getans(ask[counter].l);
counter++;
}
update(arr[i].second);
cout << "success\n";
}
for(int i = 0; i < Q; i++){
cout << ans[i] << "\n";
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgRGF0YXsKICBpbnQgbCwgciwgYmlnZ2VyLCBpZDsKfTsKCmJvb2wgY29tcChEYXRhIGEsIERhdGEgYil7Cgljb3V0IDw8ICJISCI7CiAgcmV0dXJuIGEuYmlnZ2VyID4gYi5iaWdnZXI7Cn0KCmludCBiaXRbMjAwMDA1XSwgYW5zWzIwMDAwNV07cGFpcjxpbnQsIGludD4gYXJyWzIwMDAwNV07CmludCBOLCBROwpEYXRhIGFza1syMDAwMDVdOwoKdm9pZCB1cGRhdGUoaW50IGkpewogIGZvcig7IGkgPD0gTjsgaSs9aSYtaSkKICAgIGJpdFtpXSsrOwp9CgppbnQgZ2V0YW5zKGludCBpKXsKICBpbnQgcmVzID0gMDsKICBmb3IoOyBpID4gMDsgaS09aSYtaSkKICAgIHJlcyArPSBiaXRbaV07CiAgcmV0dXJuIHJlczsKfQoKaW50IG1haW4oKSB7CiAgY2luID4+IE47CiAgZm9yKGludCBpID0gMDsgaSA8IE47IGkrKyl7CiAgICBjaW4gPj4gYXJyW2ldLmZpcnN0OwogICAgYXJyW2ldLnNlY29uZCA9IGk7CiAgfQogIGNpbiA+PiBROwogIGNvdXQgPDwgTiA8PCAiICIgPDwgUSA8PCAiXG4iOwogIGZvcihpbnQgaSA9IDA7IGkgPCBROyBpKyspewogICAgY2luID4+IGFza1tpXS5sID4+IGFza1tpXS5yID4+IGFza1tpXS5iaWdnZXI7CiAgICBhc2tbaV0ubC0tOwogICAgYXNrW2ldLnItLTsKICAgIGFza1tpXS5pZCA9IGk7CiAgfQogIGNvdXQgPDwgInN1Y2Nlc3NcbiI7CiAgc29ydChhcnIsIGFycitOLCBncmVhdGVyPHBhaXI8aW50LCBpbnQ+PigpKTsKICBzb3J0KGFzaywgYXNrK1EsIGNvbXApOwoKICBjb3V0IDw8ICJzdWNjZXNzXG4iOwogIGludCBjb3VudGVyID0gMDsKICBmb3IoaW50IGkgPSAwOyBpIDwgTjsgaSsrKXsKICAgIHdoaWxlKGFza1tjb3VudGVyXS5iaWdnZXIgPCBhcnJbaV0uZmlyc3QgJiYgY291bnRlciA8IFEpewogICAgICBhbnNbYXNrW2NvdW50ZXJdLmlkXSA9IGdldGFucyhhc2tbY291bnRlcl0uciArIDEpICsgZ2V0YW5zKGFza1tjb3VudGVyXS5sKTsKICAgICAgY291bnRlcisrOwogICAgfQogICAgdXBkYXRlKGFycltpXS5zZWNvbmQpOwogICAgY291dCA8PCAic3VjY2Vzc1xuIjsKICB9CiAgZm9yKGludCBpID0gMDsgaSA8IFE7IGkrKyl7CiAgICBjb3V0IDw8IGFuc1tpXSA8PCAiXG4iOwogIH0KfQ==