#include using namespace std; using ll = long long; using vi = vector; using vvi = vector; using ii = pair; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, a, b; cin >> n >> a >> b; vi l(n), r(n), t(n); vvi pf(n); for (int i = 0; i < n; ++i) cin >> l[i] >> r[i] >> t[i], pf[l[i]].push_back(i), pf[r[i]].push_back(i); vvi dt(2, vi(n, -1LL)); queue q; for (int i = 0; i < n; ++i) dt[t[i]][i] = 0, q.push({t[i], i}); while (!q.empty()) { int c, i; tie(c, i) = q.front(); q.pop(); for (int j : pf[i]) if (dt[c][j] < 0) dt[c][j] = dt[c][i] + 1, q.push({c, j}); } int ans = -1; if (dt[0][a] != dt[1][b] && (ans < 0 || min(dt[0][a], dt[1][b]) < ans)) ans = min(dt[0][a], dt[1][b]); if (dt[1][a] != dt[0][b] && (ans < 0 || min(dt[1][a], dt[0][b]) < ans)) ans = min(dt[1][a], dt[0][b]); if (ans < 0) cout << "indistinguishable" << endl; else cout << ans << endl; return 0; }