from collections import deque INF = 10**18 def bfs(graph, n): dist = [INF] * (2 * 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) if dist[n - 1] < INF: return "Same", dist[n - 1] elif dist[2 * n - 1] < INF: return "Different", dist[2 * n - 1] else: return "Unknown", None def solve(): N, M = [int(s) for s in input().split()] graph = [[] for _ in range(2 * N)] for _ in range(M): A, B, C = [int(s) for s in input().split()] A, B = A - 1, B - 1 if C == 1: graph[A].append(B) graph[B].append(A) graph[N + A].append(N + B) graph[N + B].append(N + A) else: graph[A].append(N + B) graph[B].append(N + A) res, dist = bfs(graph, N) if res == "Unknown": print(res) else: print(res, dist, sep="\n") if __name__ == "__main__": T = int(input()) for _ in range(T): solve()