n, q = gets.split.map(&:to_i)

#頂点 a と b を結ぶ
tree = Array.new(n + 1) {[]}
(n - 1).times do
  a, b = gets.split.map(&:to_i)
  tree[a] << b    #a < b なので必ず a の方が根
end

#頂点 p は根で、部分木のすべての頂点に足されるのは x
oparations = Hash.new(0)
q.times do
  p, x = gets.split.map(&:to_i)
  oparations[p] += x
end

#実際に足す操作
node_counts = Array.new(n + 1, 0)
oparations.each do |p, x|
  queue = [p]
  until queue.empty?
    c = queue.shift
    node_counts[c] += x
    tree[c].each {|q| queue << q}
  end
end

puts node_counts[1..n].join(" ")