#include<iostream>
#include<vector>
using namespace std;
vector<int> vec[200000];
int counter[200000]={0};

void dfs(int p,int n){
	for(int i=0;i<vec[n].size();i++){
		if(vec[n][i]!=p){
			counter[vec[n][i]]+=counter[n];
			dfs(n,vec[n][i]);
		}
	}
}
int main(){
	int N,Q,a,b,p,x;
	cin>>N>>Q;
	for(int i=0;i<N-1;i++){
		cin>>a>>b;
		a--;b--;
		vec[a].push_back(b);
		vec[b].push_back(a);
	}
	for(int i=0;i<Q;i++){
		cin>>p>>x;
		p--;
		counter[p]+=x;
	}
	dfs(-1,0);
	for(int i=0;i<N;i++)cout<<counter[i]<<" ";
	return 0;
}