/** author: shobonvip created: 2026.03.27 21:59:00 **/ #include using namespace std; //* ATCODER #include using namespace atcoder; typedef modint998244353 mint; //*/ /* BOOST MULTIPRECISION #include using namespace boost::multiprecision; //*/ typedef long long ll; #define rep(i, s, n) for (int i = (int)(s); i < (int)(n); i++) #define rrep(i, s, n) for (int i = (int)(n)-1; i >= (int)(s); i--) #define all(v) v.begin(), v.end() template bool chmin(T &a, const T &b) { if (a <= b) return false; a = b; return true; } template bool chmax(T &a, const T &b) { if (a >= b) return false; a = b; return true; } template T max(vector &a){ assert(!a.empty()); T ret = a[0]; for (int i=0; i<(int)a.size(); i++) chmax(ret, a[i]); return ret; } template T min(vector &a){ assert(!a.empty()); T ret = a[0]; for (int i=0; i<(int)a.size(); i++) chmin(ret, a[i]); return ret; } template T sum(vector &a){ T ret = 0; for (int i=0; i<(int)a.size(); i++) ret += a[i]; return ret; } void solve() { int n, m; cin >> n >> m; dsu uf(n); vector a(m), b(m), c(m); vector ikeru(n, vector(0)); rep(i,0,m) { cin >> a[i] >> b[i] >> c[i]; a[i]--; b[i]--; if (c[i] == 1) { uf.merge(a[i], b[i]); ikeru[a[i]].emplace_back(b[i]); ikeru[b[i]].emplace_back(a[i]); } } vector d1(n,1e9); vector dn(n,1e9); d1[0] = 0; dn[n-1] = 0; deque mada; mada.emplace_back(0); while(!mada.empty()) { int i = mada.front(); mada.pop_front(); for (int j: ikeru[i]) { if (chmin(d1[j],d1[i]+1)) { mada.emplace_back(j); } } } mada.emplace_back(n-1); while(!mada.empty()) { int i = mada.front(); mada.pop_front(); for (int j: ikeru[i]) { if (chmin(dn[j],dn[i]+1)) { mada.emplace_back(j); } } } if (uf.same(0, n-1)) { cout << "Same\n"; cout << d1[n-1] << '\n'; return; } bool mode = 0; int ans = 1e9; rep(i,0,m) { if ( uf.same(a[i], 0) && uf.same(b[i], n-1) ) { mode = 1; chmin(ans, d1[a[i]] + dn[b[i]] + 1); } if ( uf.same(b[i], 0) && uf.same(a[i], n-1) ) { mode = 1; chmin(ans, d1[b[i]] + dn[a[i]] + 1); } } if (mode) { cout << "Different\n"; cout << ans << '\n'; } else { cout << "Unknown\n"; } } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int t; cin >> t; while(t--) solve(); }