from collections import deque INF = 10**18 def bfs(graph): n = len(graph) dist = [INF] * n dist[0] = 0 que = deque([0]) while que: curr = que.popleft() for to in graph[curr]: if dist[to] < INF: continue dist[to] = dist[curr] + 1 que.append(to) return dist[n - 1] def solve(): N, M = [int(s) for s in input().split()] graph_prove = [[] for _ in range(N)] graph_same = [[] for _ in range(N)] for _ in range(M): A, B, C = [int(s) for s in input().split()] A, B = A - 1, B - 1 graph_prove[A].append(B) graph_prove[B].append(A) if C == 1: graph_same[A].append(B) graph_same[B].append(A) if (same := bfs(graph_same)) < INF: print("Same", same, sep="\n") elif (prove := bfs(graph_prove)) < INF: print("Different", prove, sep="\n") else: print("Unknown") if __name__ == "__main__": T = int(input()) for _ in range(T): solve()