#include <bits/stdc++.h>
using namespace std;

const int N=200010;
vector<pair<int, int>> adj[N];
int node_a; int node_b;
bool path;
bool mark[N];
void dfs(int node){
    mark[node]=true;
    if(node==node_b){
        path=true;
        return;
    }
    else{
        for(int i=0; i< adj[node].size(); i++){
            if(!mark[adj[node][i].first]){
                dfs(adj[node][i].first);
            }
        }
    }
}


signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
   int n, m;
    cin >> n >> m;
    for(int i=0; i< m; i++){
        int x, y, z;
        cin >> x >> y >> z;
        adj[x].push_back(make_pair(y, z));
        adj[y].push_back(make_pair(x, z));
    }
    cin >> node_a >> node_b;
    path=false;
    if(node_a==node_b){
        cout << 0 << '\n';

    }
    dfs(node_a);

    if(!path){
        cout << -1 << '\n';
    }
    else cout << 1 <<'\n';


}