1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import sys

sys.setrecursionlimit(300000)

def solve():
    # Szybki odczyt danych
    input_data = sys.stdin.read().split()
    if not input_data:
        return
    
    ptr = 0
    n = int(input_data[ptr]); ptr += 1
    q = int(input_data[ptr]); ptr += 1
    
    adj = [[] for _ in range(n + 1)]
    for _ in range(n - 1):
        u = int(input_data[ptr]); ptr += 1
        v = int(input_data[ptr]); ptr += 1
        w = int(input_data[ptr]); ptr += 1
        adj[u].append((v, w))
        adj[v].append((u, w))

    queries = []
    for _ in range(q):
        a = int(input_data[ptr]); ptr += 1
        b = int(input_data[ptr]); ptr += 1
        c = int(input_data[ptr]); ptr += 1
        queries.append(sorted([a, b, c]))
    
    total_snow = 0
    edge_weights = []
    for u in range(1, n + 1):
        for v, w in adj[u]:
            if u < v:
                total_snow += w
                edge_weights.append(w)
    
    edge_weights.sort(reverse=True)
    
    
    results = []
    for abc in queries:
        a, b, c = abc
        if a + b + c > total_snow:
            results.append("NIE")
        else:
            results.append("TAK")

    sys.stdout.write("\n".join(results) + "\n")

if __name__ == "__main__":
    solve()