#include #include #include #include using namespace std; using pii = pair; using Graph = vector>; Graph G(200010); int D[200010][2]; void bfs(int src){ fill(&D[0][0], &D[0][0]+200010*2, -1); D[src][0]=0; queue Q; Q.push({src, 0}); while(! Q.empty()){ auto [cur, eq] = Q.front(); Q.pop(); for (auto [dst, fm]: G[cur]){ if (eq==1 && fm==1) continue; if (D[dst][eq+fm]!=-1) continue; D[dst][eq+fm]=D[cur][eq]+1; Q.push({dst, eq+fm}); } } return; } void solve(){ int N, M; cin>>N>>M; for (int i=1;i<=N;i++) G[i].clear(); for (int i=0;i>A>>B>>C; G[A].push_back({B, C-1}); G[B].push_back({A, C-1}); } bfs(1); if (D[N][0]==-1 && D[N][1]==-1) { cout << "Unknown" << "\n"; } else if (D[N][0]!=-1){ cout << "Same" << "\n"; cout << D[N][0] << "\n"; } else{ cout << "Different" << "\n"; cout << D[N][1] << "\n"; } return; } int main(){ int T; cin>>T; for (int scenario=0;scenario