#include <bits/stdc++.h>

using namespace std;

int n,m;
vector<vector<pair<int, int>>> putevi;
int minbrojac=INT_MAX;
void recursion(int pocetak, int kraj, int brojac, int stanje, set<int> iskorisceni)
{
    if(pocetak==kraj)
    {
        if(brojac<minbrojac) minbrojac=brojac;
    }
    for(int i=0; i<putevi[pocetak].size(); i++)
    {
        pair<int, int> put=putevi[pocetak][i];
        if(iskorisceni.find(put.first)==iskorisceni.end())
        {
            if(stanje!=put.second) brojac++;
            iskorisceni.insert(put.first);
            recursion(put.first, kraj, brojac, put.second, iskorisceni);
        }
    }
}



int main()
{
    int a,b,t;
    cin>>n>>m;
    putevi.resize(n+1);

    for(int i=0; i<m; i++)
    {
        cin>>a>>b>>t;
        putevi[a].push_back({b,t});
        putevi[b].push_back({a,t});
    }
    int pocetak, kraj;
    cin>>pocetak>>kraj;
    set<int> iskorisceni;
    recursion(pocetak, kraj, 0, 0, iskorisceni);
    cout<<minbrojac;

}