#include <bits/stdc++.h>

using namespace std;

vector<int> rezultati;

void put(int trenutni, int cilj, bool masina, int brojac, vector<pair<pair<int, int>, int>> putevi){
    if(trenutni == cilj){
        rezultati.push_back(brojac);
    }
    for(int i = 0; i < putevi.size(); i++){
        if(putevi[i].first.first == trenutni){
            if(putevi[i].second){
                if(masina){
                    put(putevi[i].first.second, cilj, masina, brojac, putevi);
                }
                else{
                    put(putevi[i].first.second, cilj, !masina, brojac + 1, putevi);
                }
            }
            else{
                if(masina){
                    put(putevi[i].first.second, cilj, !masina, brojac + 1, putevi);
                }
                else{
                    put(putevi[i].first.second, cilj, masina, brojac, putevi);
                }
            }
        }
    }
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n, m;
    cin >> n >> m;
    vector<pair<pair<int, int>, int>> putevi (n);
    for(int i = 0; i < n; i++){
        cin >> putevi[i].first.first >> putevi[i].first.second >> putevi[i].second;
    }
    int mika, laza;
    cin >> mika >> laza;
    put(mika, laza, false, 0, putevi);
    cout << *min_element(rezultati.begin(), rezultati.end());
}