#include <bits/stdc++.h>
using namespace std;
const int N=2*1e5+50;
const int inf=1e9+50;
int T[N],n;
int sum(int i)
{
	int sum=0;
	while(i>0)
	{
		sum+=T[i];
		i-=i&(-i);
	}
	return sum;
}
void add(int i,int k)
{
	while(i<=n)
	{
		T[i]+=k;
		i+=i&(-i);
	}
}
int main()
{
    int t;
    scanf("%i%i",&n,&t);
    int l[n+1],r[n+1];
    vector<pair<pair<int,int>,pair<int,int>>>b;
    for(int i=1;i<=n;i++)
	{
		scanf("%i%i",&l[i],&r[i]);
		b.push_back({{l[i],0},{0,i}});
	}
	int L[t+1],R[t+1],X[t+1];
	int LL[t+1],RR[t+1];
	for(int i=1;i<=t;i++)
	{
		scanf("%i%i%i",&L[i],&R[i],&X[i]);
		b.push_back({{X[i],L[i]},{R[i],i}});
	}
	sort(b.begin(),b.end());
	reverse(b.begin(),b.end());
	for(int i=0;i<b.size();i++)
	{
		int x=b[i].first.first,y=b[i].first.second,z=b[i].second.first,w=b[i].second.second;
		if(y==0)
		{
			add(w,1);
		}
		else
		{
			LL[w]=sum(z)-sum(y-1);
		}
	}
	while(!b.empty())
	{
		b.pop_back();
	}
	for(int i=1;i<=n;i++)
	{
		T[i]=0;
	}
	for(int i=1;i<=n;i++)
	{
		b.push_back({{r[i],inf},{0,i}});
	}
	for(int i=1;i<=t;i++)
	{
		b.push_back({{X[i],L[i]},{R[i],i}});
	}
	sort(b.begin(),b.end());
	for(int i=0;i<b.size();i++)
	{
		int x=b[i].first.first,y=b[i].first.second,z=b[i].second.first,w=b[i].second.second;
		if(z==0)
		{
			add(w,1);
		}
		else
		{
			RR[w]=sum(z)-sum(y-1);
		}
	}
	for(int i=1;i<=t;i++)
	{
		printf("%i\n",R[i]-L[i]+1-LL[i]-RR[i]);
	}
	/*for(int i=1;i<=t;i++)
	{
		printf("%i\n",RR[i]);
	}*/
    return 0;
}