import sys sys.setrecursionlimit(10**8) import pypyjit pypyjit.set_param('max_unroll_recursion=-1') N, Q = map(int, input().split()) G = [list() for _ in range(N + 1)] for i in range(N - 1): u, v = map(int, input().split()) G[u].append(v) G[v].append(u) size = [1] * (N + 1) def dfs(pos, pre): for nex in G[pos]: if nex == pre: continue dfs(nex, pos) # 親に計上する size[pos] += size[nex] return dfs(1, 0) ans = 0 ansl = [] for i in range(Q): p, x = map(int, input().split()) ans += size[p] * x ansl.append(ans) print(*ansl, sep='\n')