def countup(now, R, used, count): # if len(root[now]) == 1 and root[now][0] in used: # count[root[now][0]] += count[now]+1 # return if now in used: return for next_ in root[now]: if next_ == R: continue countup(next_, now, used | set([now]), count) if now == R: return count[R] += count[now] N, Q = map(int, input().split()) root = [[] for i in range(N+1)] for i in range(N-1): a, b = map(int, input().split()) root[a-1].append(b-1) root[b-1].append(a-1) count = [1]*N countup(0, 0, set(), count) cost = [0]*N ans = 0 for i in range(Q): p, x = map(int, input().split()) cost[p-1] += x ans += count[p-1]*x print(ans)