Buggy python submission (verdict: Time Limit Exceeded):
from collections import deque

N, Q = map(int, input().split(' '))

queue = deque()

for _ in range(1, N):
    queue.append(tuple(map(int, input().split(' '))))

tree = {
    1: set()
}

while len(queue) > 0:
    a, b = queue.popleft()
    if a in tree:
        tree[a].add(b)
        tree[b] = set()
    elif b in tree:
        tree[b].add(a)
        tree[a] = set()
    else:
        queue.append((a, b))

results = [0] * (N + 1)
for _ in range(Q):
    p, x = map(int, input().split(' '))
    results[p] += x

stack = deque([1])

while len(stack) > 0:
    node = stack.popleft()
    for child in tree[node]:
        stack.append(child)
        results[child] += results[node]

print(' '.join([str(result) for result in results[1:]]))


Fixed submission:
from collections import deque, defaultdict

N, Q = map(int, input().split(' '))

tree = defaultdict(set)
for _ in range(1, N):
    a, b = map(int, input().split(' '))
    tree[a].add(b)
    tree[b].add(a)

results = [0] * (N + 1)
for _ in range(Q):
    p, x = map(int, input().split(' '))
    results[p] += x

stack = deque([1])
searched = set()

while len(stack) > 0:
    node = stack.popleft()
    searched.add(node)
    for child in tree[node]:
        if child not in searched:
            stack.append(child)
            results[child] += results[node]

print(' '.join([str(result) for result in results[1:]]))

Buggy python submission (verdict: Time Limit Exceeded):
from collections import (
    deque,
    Counter,
)

N, Q = map(int, input().split(' '))

queue = deque()

for _ in range(1, N):
    queue.append(tuple(map(int, input().split(' '))))

tree = {
    1: set()
}

while len(queue) > 0:
    a, b = queue.popleft()
    if a in tree:
        tree[a].add(b)
        tree[b] = set()
    elif b in tree:
        tree[b].add(a)
        tree[a] = set()
    else:
        queue.append((a, b))

queries = Counter()
for _ in range(Q):
    p, x = map(int, input().split(' '))
    queries[p] += x

stack = deque([1])

results = [0] * (N + 1)

while len(stack) > 0:
    node = stack.popleft()
    results[node] += queries[node]
    for child in tree[node]:
        stack.append(child)
        results[child] += results[node]

print(' '.join([str(result) for result in results[1:]]))


Fixed submission:
from collections import deque, defaultdict

N, Q = map(int, input().split(' '))

tree = defaultdict(set)
for _ in range(1, N):
    a, b = map(int, input().split(' '))
    tree[a].add(b)
    tree[b].add(a)

results = [0] * (N + 1)
for _ in range(Q):
    p, x = map(int, input().split(' '))
    results[p] += x

stack = deque([1])
searched = set()

while len(stack) > 0:
    node = stack.popleft()
    searched.add(node)
    for child in tree[node]:
        if child not in searched:
            stack.append(child)
            results[child] += results[node]

print(' '.join([str(result) for result in results[1:]]))

Buggy python submission (verdict: Time Limit Exceeded):
from collections import (
    deque,
    Counter,
)

N, Q = map(int, input().split(' '))

queue = deque()

for _ in range(1, N):
    queue.append(tuple(map(int, input().split(' '))))

tree = {
    1: set()
}

while len(queue) > 0:
    a, b = queue.popleft()
    if a in tree:
        tree[a].add(b)
        tree[b] = set()
    elif b in tree:
        tree[b].add(a)
        tree[a] = set()
    else:
        queue.append((a, b))

counter = Counter()

for _ in range(Q):
    p, x = map(int, input().split(' '))
    stack = deque()
    stack.appendleft(p)
    while len(stack) > 0:
        node = stack.popleft()
        for child in tree[node]:
            stack.append(child)
        counter[node] += x

print(' '.join([str(counter[node]) for node in range(1, N + 1)]))


Fixed submission:
from collections import deque, defaultdict

N, Q = map(int, input().split(' '))

tree = defaultdict(set)
for _ in range(1, N):
    a, b = map(int, input().split(' '))
    tree[a].add(b)
    tree[b].add(a)

results = [0] * (N + 1)
for _ in range(Q):
    p, x = map(int, input().split(' '))
    results[p] += x

stack = deque([1])
searched = set()

while len(stack) > 0:
    node = stack.popleft()
    searched.add(node)
    for child in tree[node]:
        if child not in searched:
            stack.append(child)
            results[child] += results[node]

print(' '.join([str(result) for result in results[1:]]))