n,Q = map(int,input().split())
g = [[] for _ in range(n)]
for i in range(n-1):
    a,b = map(int,input().split())
    g[a-1].append(b-1)
    g[b-1].append(a-1)
 
order = []
st = [0]
parent = [-1]*n
#depth = [0]*n
while st:
    v = st.pop()
    order.append(v)
    for c in g[v]:
        if c != parent[v]:
            st.append(c)
            parent[c] = v

size = [1]*n
for i in order[::-1]:
    if i==0: break
    size[parent[i]] += size[i]

ans = 0
for _ in range(Q):
    p,x = map(int,input().split())
    ans += size[p-1]*x
    print(ans)