#include #define int long long #define endl "\n" using namespace std; #define INF 1e9 vector vis; vector> dis; vector>> g; void bfs(int st,int en) { queue> qu; qu.push({st,0}); dis[st] = {0,0}; while (!qu.empty()) { pair curr = qu.front();qu.pop(); if (vis[curr.first]) continue; vis[curr.first] = 1; for (auto v : g[curr.first]) { if (dis[v.first].second>dis[curr.first].second+v.second) { dis[v.first].first = dis[curr.first].first+1; dis[v.first].second = dis[curr.first].second+v.second; qu.push({v.first,v.second+curr.second}); } } } } void solve() { g.clear(); dis.clear(); vis.clear(); int n,m;cin>>n>>m; g.resize(n+1); dis.assign(n+1,{INF,INF}); vis.assign(n+1,0); for (int i = 0; i < m; i++) { int x,y,z;cin>>x>>y>>z; g[x].push_back({y,z-1}); g[y].push_back({x,z-1}); } bfs(1,n); if (dis[n].second>1) cout << "Unknown" << endl; else if (dis[n].second==1) { cout << "Different" << endl; cout << dis[n].first << endl; } else if (dis[n].second==0) { cout << "Same" << endl; cout << dis[n].first << endl; } } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); int t;cin>>t;while(t--) solve(); }