#include<bits/stdc++.h>
using namespace std;
vector<int>g[200009];
int n,q,counter[200009];
void dfs(int p,int s) {
	for(int i=0;i<g[s].size();i++)
		if(g[s][i]!=p) {
			counter[g[s][i]]+=counter[s];
			dfs(s,g[s][i]);
		}
}
int main() {
	scanf("%d%d",&n,&q);
	int x,y;
	for(int i=0;i<n-1;i++) {
		scanf("%d%d",&x,&y);
		g[x].push_back(y);
		g[y].push_back(x);
	}
	for(int i=0;i<q;i++) {
		scanf("%d%d",&x,&y);
		counter[x]+=y;
	}
	dfs(-1,1);
	for(int i=1;i<=n;i++) printf("%d ",counter[i]);
	return 0;
}