#include<bits/stdc++.h>
#define ll long long
#define endl "\n"
#define mii map<int,int>
#define mll map<ll,ll>
#define pii pair<int,int>
#define pll pair<ll,ll>
#define fi first
#define se second
using namespace std;
int n, q;
pii a[100005];
ll st[400005];
struct query {
int ind, l, r, x;
} b[100005];
vector<pll> ans;
bool cmp(query a, query b) {
return a.x>b.x;
}
void upd(int id, int l, int r, int pos, int val) {
if (l>pos || r<pos) return;
if (l==r) {
st[id]=val;
return;
}
int mid=(l+r)/2;
upd(id*2,l,mid,pos,val);
upd(id*2+1,mid+1,r,pos,val);
st[id]=st[id*2]+st[id*2+1];
}
ll gsum(int id, int l, int r, int u, int v) {
if (l>v || r<u) return 0;
if (l>=u && r<=v) return st[id];
int mid=(l+r)/2;
return gsum(id*2,l,mid,u,v)+gsum(id*2+1,mid+1,r,u,v);
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
cin>>n>>q;
for (int i=1; i<=n; i++) {
cin>>a[i].fi;
a[i].se=i;
}
sort(a+1,a+n+1,greater<pii>());
for (int i=1; i<=q; i++) {
b[i].ind=i;
cin>>b[i].l>>b[i].r>>b[i].x;
}
sort(b+1,b+q+1,cmp);
int j=1;
for (int i=1; i<=q; i++) {
int l=b[i].l, r=b[i].r, x=b[i].x;
while (j<=n && a[j].fi>=x) {
upd(1,1,n,a[j].se,a[j].fi);
j++;
}
ans.push_back({b[i].ind,gsum(1,1,n,l,r)});
}
sort(ans.begin(),ans.end());
for (auto [i,j] : ans) {
cout<<j<<" ";
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBlbmRsICJcbiIKI2RlZmluZSBtaWkgbWFwPGludCxpbnQ+CiNkZWZpbmUgbWxsIG1hcDxsbCxsbD4KI2RlZmluZSBwaWkgcGFpcjxpbnQsaW50PgojZGVmaW5lIHBsbCBwYWlyPGxsLGxsPgojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBuLCBxOwpwaWkgYVsxMDAwMDVdOwpsbCBzdFs0MDAwMDVdOwpzdHJ1Y3QgcXVlcnkgewogICAgaW50IGluZCwgbCwgciwgeDsKfSBiWzEwMDAwNV07CnZlY3RvcjxwbGw+IGFuczsKYm9vbCBjbXAocXVlcnkgYSwgcXVlcnkgYikgewogICAgcmV0dXJuIGEueD5iLng7Cn0Kdm9pZCB1cGQoaW50IGlkLCBpbnQgbCwgaW50IHIsIGludCBwb3MsIGludCB2YWwpIHsKICAgIGlmIChsPnBvcyB8fCByPHBvcykgcmV0dXJuOwogICAgaWYgKGw9PXIpIHsKICAgICAgICBzdFtpZF09dmFsOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGludCBtaWQ9KGwrcikvMjsKICAgIHVwZChpZCoyLGwsbWlkLHBvcyx2YWwpOwogICAgdXBkKGlkKjIrMSxtaWQrMSxyLHBvcyx2YWwpOwogICAgc3RbaWRdPXN0W2lkKjJdK3N0W2lkKjIrMV07Cn0KbGwgZ3N1bShpbnQgaWQsIGludCBsLCBpbnQgciwgaW50IHUsIGludCB2KSB7CiAgICBpZiAobD52IHx8IHI8dSkgcmV0dXJuIDA7CiAgICBpZiAobD49dSAmJiByPD12KSByZXR1cm4gc3RbaWRdOwogICAgaW50IG1pZD0obCtyKS8yOwogICAgcmV0dXJuIGdzdW0oaWQqMixsLG1pZCx1LHYpK2dzdW0oaWQqMisxLG1pZCsxLHIsdSx2KTsKfQppbnQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICBjaW4+Pm4+PnE7CiAgICBmb3IgKGludCBpPTE7IGk8PW47IGkrKykgewogICAgICAgIGNpbj4+YVtpXS5maTsKICAgICAgICBhW2ldLnNlPWk7CiAgICB9CiAgICBzb3J0KGErMSxhK24rMSxncmVhdGVyPHBpaT4oKSk7CiAgICBmb3IgKGludCBpPTE7IGk8PXE7IGkrKykgewogICAgICAgIGJbaV0uaW5kPWk7CiAgICAgICAgY2luPj5iW2ldLmw+PmJbaV0ucj4+YltpXS54OwogICAgfQogICAgc29ydChiKzEsYitxKzEsY21wKTsKICAgIGludCBqPTE7CiAgICBmb3IgKGludCBpPTE7IGk8PXE7IGkrKykgewogICAgICAgIGludCBsPWJbaV0ubCwgcj1iW2ldLnIsIHg9YltpXS54OwogICAgICAgIHdoaWxlIChqPD1uICYmIGFbal0uZmk+PXgpIHsKICAgICAgICAgICAgdXBkKDEsMSxuLGFbal0uc2UsYVtqXS5maSk7CiAgICAgICAgICAgIGorKzsKICAgICAgICB9CiAgICAgICAgYW5zLnB1c2hfYmFjayh7YltpXS5pbmQsZ3N1bSgxLDEsbixsLHIpfSk7CiAgICB9CiAgICBzb3J0KGFucy5iZWdpbigpLGFucy5lbmQoKSk7CiAgICBmb3IgKGF1dG8gW2ksal0gOiBhbnMpIHsKICAgICAgICBjb3V0PDxqPDwiICI7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==