#include <bits/stdc++.h>
using namespace std;
 
vector<int> ans(200000);
vector<vector<int>> ab(200000);
 
void dfs(int p, int c){
	ans[c] += ans[p];
	for(int cc:ab[c]) if(cc!=p) dfs(c,cc);
}
 
int in(){int x;scanf("%d",&x);return x;}
 
int main(){
	int n=in(), q=in();
 
	for(int i=0; i<n-1; i++){
		int a=in()-1, b=in()-1;
		ab[a].push_back(b);
		ab[b].push_back(a);
	}
 
	for(int i=0; i<q; i++){
		int p=in()-1;
		ans[p] += in();
	}
 
	for(int c:ab[0]) if(c) dfs(0,c);
	for(int i=0; i<n; i++) cout<< ans[i] <<(i<n-1?" ":"\n");
}