#include<bits/stdc++.h>

using namespace std;
long long int typedef li;

const int mx=1'000'000'000;

int idx=1;
int val[12000006];
int L[12000006],R[12000006];

void add(int p, int l, int r, int s, int x)
{
    if (l==r)
    {
        val[p]+=x;
        return;
    }

    int mid=(l+r)/2;
    if (s<=mid)
    {
        if (!L[p]) L[p]=++idx;
        add(L[p],l,mid,s,x);
    }
    else
    {
        if (!R[p]) R[p]=++idx;
        add(R[p],mid+1,r,s,x);
    }

    val[p]=val[L[p]]+val[R[p]];
}

int sum(int p, int l, int r, int ll, int rr)
{
    if (p==0 || l>rr || rr<l) return 0;
    if (ll<=l && rr>=r) return val[p];
    int mid=(l+r)/2;
    return sum(L[p],l,mid,ll,rr)+sum(R[p],mid+1,r,ll,rr);
}

vector<pair<int,int>> segs(1);
vector<pair<int,int>> pos[200005];
vector<pair<int,int>> neg[200005];

int ans[200005];

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);

    int n,q; cin>>n>>q;
    for (int i=1;i<=n;i++)
    {
        int ll,rr; cin>>ll>>rr;
        segs.push_back({ll,rr});
    }

    for (int i=1;i<=q;i++)
    {
        int ll,rr,x; cin>>ll>>rr>>x;
        neg[ll-1].push_back({x,i});
        pos[rr].push_back({x,i});
    }

    for (int i=1;i<=n;i++)
    {
        int ll=segs[i].first,rr=segs[i].second;
        add(1,0,mx,ll,1),add(1,0,mx,rr+1,-1);

        for (auto it : pos[i]) ans[it.second]+=sum(1,0,mx,1,it.first);
        for (auto it : neg[i]) ans[it.second]-=sum(1,0,mx,1,it.first);
    }

    for (int i=1;i<=q;i++) cout<<ans[i]<<"\n";
}