import sys from collections import defaultdict sys.setrecursionlimit(10**6) n, q = map(int, input().split()) edge = defaultdict(list) for _ in range(n - 1): a, b = map(int, input().split()) a -= 1 b -= 1 edge[a].append(b) edge[b].append(a) V = [0 for _ in range(n)] def dfs(curr, prev): V[curr] += 1 for np in edge[curr]: if np == prev: continue dfs(np, curr) V[curr] += V[np] dfs(0, -1) ans = 0 for _ in range(q): p, x = map(int, input().split()) p -= 1 ans += x * V[p] print(ans)