import sys from collections import deque n, q = map(int, sys.stdin.readline().split()) adj = [[] for _ in range(n+1)] for _ in range(n-1): a, b = map(int, sys.stdin.readline().split()) adj[a].append(b) adj[b].append(a) a = [0]*(n+1) # 1-based for _ in range(q): x, y, z = map(int, sys.stdin.readline().split()) print(a[x]) # BFSでxからの距離がy以下の頂点をすべて探す visited = [False]*(n+1) q = deque() q.append( (x, 0) ) visited[x] = True while q: v, d = q.popleft() if d > y: continue a[v] += z for u in adj[v]: if not visited[u] and d < y: # d+1 <= y なら探索 visited[u] = True q.append( (u, d+1) )