#include <bits/stdc++.h>
using namespace std;
using namespace std;
typedef long long ll;
typedef vector <int> vi;
typedef pair <int,int> pii;
typedef pair<ll,ll> pll;
typedef vector<ll> vll;
#define A first
#define B second
#define PB push_back
#define MP make_pair
#define all(v) v.begin(),v.end()
#define FAST ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0);

vector<int> graf[200005];

bool bfs(int s, int d,int v)
{
    if(s==d) return true;
    bool mark[v];
    for(int i=0;i<v;i++) mark[i]=false;
    queue<int> q;
    mark[s]=true;
    q.push(s);
    while(!q.empty())
    {
        s=q.front();
        q.pop();
        for(auto x:graf[s])
        {
            if(x==d) return true;
            if(!mark[x])
            {
                mark[x]=true;
                q.push(x);
            }
        }
    }
    return false;
}

int main()
{
    FAST
    int n,m;
    cin>>n>>m;
    bool ok = true;
    for(int i=0;i<m;i++)
    {
        int x,y,z;
        cin>>x>>y>>z;
        if(z==0) ok=false;
        graf[x].PB(y);
        graf[y].PB(x);
    }
    int x,y;
    cin>>x>>y;
    if(bfs(x,y,m))
    {
        if(ok) cout<<1;
        else cout<<0;
    }
    else cout<<-1;
    return 0;
}