function add(node, value) {
	node.val += value;
	for(var i = 0; i < node.children.length; i++) add(node.children[i], value);
}
// inputに入力データ全体が入る
function Main(input) {
	// 1行目がinput[0], 2行目がinput[1], …に入る
	input = input.split("\n");
	var count = input[0].split(" ");
	var nodeCount = count[0]-0;
	var dataCount = count[1]-0;
	var i;
	var nodes = [];
  	nodes[0] = { val:0, children:[] };
 
	for(i = 1; i < nodeCount; i++) {
		var data = input[i].split(" ");
		var parent = nodes[data[0]-1];
		var childIdx = data[1]-1;
		nodes[childIdx] = { val:0, children:[] };
		parent.children[parent.children.length] = nodes[childIdx];
	}
	for(i = nodeCount; i < nodeCount + dataCount; i++) {
		var data = input[i].split(" ");
		add(nodes[data[0]-1], data[1]-0);
	}
	
	var ret = "" + nodes[0].val;
	for(var i = 1; i < nodeCount; i++) ret += " " + nodes[i].val;
	console.log(ret);
}
//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));