import sys from collections import deque def main(): input = sys.stdin.read().split() idx = 0 N, Q = int(input[idx]), int(input[idx+1]) idx +=2 edges = [[] for _ in range(N+1)] # 1-based for _ in range(N-1): a, b = int(input[idx]), int(input[idx+1]) edges[a].append(b) edges[b].append(a) idx +=2 queries = [] for _ in range(Q): X = int(input[idx]) Y = int(input[idx+1]) Z = int(input[idx+2]) queries.append((X,Y,Z)) idx +=3 value = [0]*(N+1) # initial values are 0 for X_i, Y_i, Z_i in queries: # Output current value of X_i print(value[X_i]) # Add Z_i to all nodes within Y_i distance of X_i visited = [False]*(N+1) q = deque() q.append((X_i, 0)) visited[X_i] = True while q: node, d = q.popleft() value[node] += Z_i if d == Y_i: continue for neighbor in edges[node]: if not visited[neighbor]: visited[neighbor] = True q.append((neighbor, d+1)) if __name__ == "__main__": main()