#include <bits/stdc++.h>
using namespace std;
#define N 200005
#define LL long long
vector <int> G[N];
LL Ans[N],D[N];
void dfs(int x,int pre,LL d) {
	Ans[x] = D[x] + d;
	d += D[x];
	for(int i=0; i<(int)G[x].size(); i++) {
		int e = G[x][i];
		if(e == pre) continue;
		dfs(e,x,d);
	}
	return ;
}
int main() {
	int n,Q;
	cin >> n >> Q;
	for(int i=1,a,b; i<n; i++) {
		scanf("%d%d",&a,&b);
		G[a].push_back(b),G[b].push_back(a);
	}
	int p,x;
	while(Q--) {
		scanf("%d%d",&p,&x);
		D[p] += x;
	}
	dfs(1,0,0);
	for(int i=1; i<=n; i++) printf("%lld ",Ans[i]);
	return 0;
}