#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int N=3e5+10;
int n,m,x,c,l,r,p[N],s[N];
vector<int>alls;
vector<pair<int,int>>add,query;
int fin(int k)
{
int l=0,r=alls.size()-1;
while(l<r)
{
int mid=l+r>>1;
if(p[mid]>=k) r=mid;
else l=mid+1;
}
return l+1;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>x>>c;
alls.push_back(x);
add.push_back({x,c});
}
for(int i=1;i<=m;i++)
{
cin>>l>>r;
query.push_back({l,r});
alls.push_back(l);
alls.push_back(r);
//🤣
}
sort(alls.begin(),alls.end());
alls.erase(unique(alls.begin(),alls.end()),alls.end());
//🐱
for(auto item : add)
{
x=fin(item.first);
p[x]+=item.second;
}
for(int i=1;i<=alls.size();i++)
{
s[i]=s[i-1]+p[i];
printf("%d ",s[i]);
}
/*
for(auto item : query)
{
int ll=fin(item.first),rr=fin(item.second);
printf("%d\n",s[rr]-s[ll-1]);
}
*/
return 0;
}