#include<bits/stdc++.h>
#define fast ios_base::sync_with_stdio(false);cin.tie(0);
#define gc getchar_unlocked
using namespace std;
typedef long long lli;
void scanint(lli &x)
{
register lli c = gc();
x = 0;
for(;(c<48 || c>57);c = gc());
for(;c>47 && c<58;c = gc()) {x = (x<<1) + (x<<3) + c - 48;}
}
void build_tree(lli a[], vector<lli>st[], lli low, lli high, lli pos){
if(low==high){
st[pos].push_back(a[low]);
return;
}
else{
lli mid = (low+high)/2;
build_tree(a,st,low,mid,2*pos);
build_tree(a,st,mid+1,high,2*pos+1);
merge(st[2*pos].begin(),st[2*pos].end(),st[2*pos+1].begin(),st[2*pos+1].end(),back_inserter(st[pos]));
}
}
lli RMQ(vector<lli> st[], lli qlow, lli qhigh, lli k , lli low ,lli high, lli pos){
if(qlow>high || qhigh<low)
return 0;
if(qlow<=low && qhigh>=high){
return st[pos].size() - (upper_bound(st[pos].begin(),st[pos].end(),k)-st[pos].begin());
}
lli mid = (low+high)/2;
return RMQ(st,qlow,qhigh,k,low,mid,2*pos) + RMQ(st,qlow,qhigh,k,mid+1,high,2*pos+1);
}
void dispalyTree(vector<lli>st[], lli n){
cout<<"\nDisplaying tree\n;";
for(int i=1;i<=4*n;i+=1){
cout<<"\ni="<<i<<"\n";
for(auto it=st[i].begin();it!=st[i].end();it++)
cout<<*it<<" ";
}
cout<<"\nends here\n";
}
int main(){
//fast;
lli n;
scanint(n);
lli a[n+1];
for(int i=1;i<=n;i++){
scanint(a[i]);
}
vector<lli> st[4*n+1];
build_tree(a,st,1,n,1);
//dispalyTree(st,n);
lli q,i,j,k;
int ans=0;
//cin>>q;
scanint(q);
while(q--){
//cin>>i>>j>>k;
scanint(i);
scanint(j);
scanint(k);
if(i<1)
i=1;
if(j>n)
j=n;
ans = RMQ(st,i,j,k,1,n,1);
//cout<<ans<<"\n";
printf("%lld\n",ans);
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBmYXN0IGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpO2Npbi50aWUoMCk7CiNkZWZpbmUgZ2MgZ2V0Y2hhcl91bmxvY2tlZAp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0eXBlZGVmIGxvbmcgbG9uZyAgbGxpOwoKdm9pZCBzY2FuaW50KGxsaSAmeCkKewogICAgcmVnaXN0ZXIgbGxpIGMgPSBnYygpOwogICAgeCA9IDA7CiAgICBmb3IoOyhjPDQ4IHx8IGM+NTcpO2MgPSBnYygpKTsKICAgIGZvcig7Yz40NyAmJiBjPDU4O2MgPSBnYygpKSB7eCA9ICh4PDwxKSArICh4PDwzKSArIGMgLSA0ODt9Cn0KCnZvaWQgYnVpbGRfdHJlZShsbGkgYVtdLCB2ZWN0b3I8bGxpPnN0W10sIGxsaSBsb3csIGxsaSBoaWdoLCBsbGkgcG9zKXsKICAgIGlmKGxvdz09aGlnaCl7CiAgICAgICAgc3RbcG9zXS5wdXNoX2JhY2soYVtsb3ddKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBlbHNlewogICAgICAgIGxsaSBtaWQgPSAobG93K2hpZ2gpLzI7CiAgICAgICAgYnVpbGRfdHJlZShhLHN0LGxvdyxtaWQsMipwb3MpOwogICAgICAgIGJ1aWxkX3RyZWUoYSxzdCxtaWQrMSxoaWdoLDIqcG9zKzEpOwogICAgICAgIG1lcmdlKHN0WzIqcG9zXS5iZWdpbigpLHN0WzIqcG9zXS5lbmQoKSxzdFsyKnBvcysxXS5iZWdpbigpLHN0WzIqcG9zKzFdLmVuZCgpLGJhY2tfaW5zZXJ0ZXIoc3RbcG9zXSkpOwogICAgfQp9CiAKbGxpIFJNUSh2ZWN0b3I8bGxpPiBzdFtdLCBsbGkgcWxvdywgbGxpIHFoaWdoLCBsbGkgayAsIGxsaSBsb3cgLGxsaSBoaWdoLCBsbGkgcG9zKXsKICAgIGlmKHFsb3c+aGlnaCB8fCBxaGlnaDxsb3cpCiAgICAgICAgcmV0dXJuIDA7CiAgICBpZihxbG93PD1sb3cgJiYgcWhpZ2g+PWhpZ2gpewogICAgICAgIHJldHVybiBzdFtwb3NdLnNpemUoKSAtICh1cHBlcl9ib3VuZChzdFtwb3NdLmJlZ2luKCksc3RbcG9zXS5lbmQoKSxrKS1zdFtwb3NdLmJlZ2luKCkpOwogICAgfQogICAgICAgIGxsaSBtaWQgPSAobG93K2hpZ2gpLzI7CiAgICAgICAgcmV0dXJuIFJNUShzdCxxbG93LHFoaWdoLGssbG93LG1pZCwyKnBvcykgKyBSTVEoc3QscWxvdyxxaGlnaCxrLG1pZCsxLGhpZ2gsMipwb3MrMSk7CiAKfQogCiAKdm9pZCBkaXNwYWx5VHJlZSh2ZWN0b3I8bGxpPnN0W10sIGxsaSBuKXsKICAgICAgICBjb3V0PDwiXG5EaXNwbGF5aW5nIHRyZWVcbjsiOwogICAgICAgIGZvcihpbnQgaT0xO2k8PTQqbjtpKz0xKXsKICAgICAgICAgICAgY291dDw8IlxuaT0iPDxpPDwiXG4iOwogICAgICAgICAgICBmb3IoYXV0byBpdD1zdFtpXS5iZWdpbigpO2l0IT1zdFtpXS5lbmQoKTtpdCsrKQogICAgICAgICAgICAgICAgY291dDw8Kml0PDwiICI7CiAgICAgICAgfQogICAgICAgIGNvdXQ8PCJcbmVuZHMgaGVyZVxuIjsKfQogCmludCBtYWluKCl7CiAgICAvL2Zhc3Q7CiAgICBsbGkgbjsKICAgIHNjYW5pbnQobik7CiAgICBsbGkgYVtuKzFdOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspewogICAgICAgIHNjYW5pbnQoYVtpXSk7CiAgICB9CiAgICB2ZWN0b3I8bGxpPiBzdFs0Km4rMV07CiAgICBidWlsZF90cmVlKGEsc3QsMSxuLDEpOwogICAgLy9kaXNwYWx5VHJlZShzdCxuKTsKICAgIGxsaSBxLGksaixrOwogICAgaW50IGFucz0wOwogICAgLy9jaW4+PnE7CiAgICBzY2FuaW50KHEpOwogICAgd2hpbGUocS0tKXsKICAgICAgICAvL2Npbj4+aT4+aj4+azsKICAgICAgICBzY2FuaW50KGkpOwogICAgICAgIHNjYW5pbnQoaik7CiAgICAgICAgc2NhbmludChrKTsKICAgICAgICBpZihpPDEpCiAgICAgICAgICAgIGk9MTsKICAgICAgICBpZihqPm4pCiAgICAgICAgICAgIGo9bjsKICAgICAgICBhbnMgPSBSTVEoc3QsaSxqLGssMSxuLDEpOwogICAgICAgIC8vY291dDw8YW5zPDwiXG4iOwogICAgICAgICBwcmludGYoIiVsbGRcbiIsYW5zKTsKICAgIH0KfQogCiA=