#include <bits/stdc++.h>
using namespace std;
#define ll long long
struct Student {
ll s, t, sum;
};
struct Query {
ll x, y, z;
int id;
};
const int MAXN = 100000 + 5;
int N, Q;
vector<Student> stu;
vector<Query> query;
vector<ll> vals;
vector<multiset<ll>> seg;
vector<int> ans;
void update(int node, int l, int r, int pos, ll val) {
seg[node].insert(val);
if (l == r) return;
int mid = (l + r) >> 1;
if (pos <= mid) update(node << 1, l, mid, pos, val);
else update(node << 1 | 1, mid + 1, r, pos, val);
}
int getCount(multiset<ll>& ms, ll z) {
return distance(ms.lower_bound(z), ms.end());
}
int querySeg(int node, int l, int r, int ql, int qr, ll z) {
if (qr < l || r < ql) return 0;
if (ql <= l && r <= qr) {
return getCount(seg[node], z);
}
int mid = (l + r) >> 1;
return querySeg(node << 1, l, mid, ql, qr, z)
+ querySeg(node << 1 | 1, mid + 1, r, ql, qr, z);
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
// freopen("examination.in", "r", stdin);
// freopen("examination.out", "w", stdout);
cin >> N >> Q;
stu.resize(N);
query.resize(Q);
ans.assign(Q, 0);
for (int i = 0; i < N; i++) {
cin >> stu[i].s >> stu[i].t;
stu[i].sum = stu[i].s + stu[i].t;
vals.push_back(stu[i].t);
}
for (int i = 0; i < Q; i++) {
cin >> query[i].x >> query[i].y >> query[i].z;
query[i].id = i;
vals.push_back(query[i].y);
}
sort(vals.begin(), vals.end());
vals.erase(unique(vals.begin(), vals.end()), vals.end());
auto getPos = [&](ll x) {
return lower_bound(vals.begin(), vals.end(), x) - vals.begin() + 1;
};
int M = vals.size();
seg.assign(4 * M + 5, multiset<ll>());
sort(stu.begin(), stu.end(), [](Student a, Student b) {
return a.s > b.s;
});
sort(query.begin(), query.end(), [](Query a, Query b) {
return a.x > b.x;
});
int ptr = 0;
for (auto q : query) {
while (ptr < N && stu[ptr].s >= q.x) {
int pos = getPos(stu[ptr].t);
update(1, 1, M, pos, stu[ptr].sum);
ptr++;
}
int L = lower_bound(vals.begin(), vals.end(), q.y) - vals.begin() + 1;
if (L <= M)
ans[q.id] = querySeg(1, 1, M, L, M, q.z);
else
ans[q.id] = 0;
}
for (int i = 0; i < Q; i++)
cout << ans[i] << '\n';
return 0;
}