#include <iostream>

using namespace std;



int main()
{
    int N;
    int M;
    cin>>N;
    cin>>M;
    int a,b,t;
    int d[N+1];
    bool gotov[N+1];
    int mat[N+1][N+1];
    bool ukljucena[N+1];
    for(int i=0; i<N+1; i++){
        for(int j=0; j<N+1; j++){
            mat[i][j]=999;
        }
        ukljucena[i]=false;
        gotov[i]=false;
    }
    for(int i=0; i<N+1; i++){
        d[i]=999;
    }

    for(int i=0; i<M; i++){
        cin>>a;
        cin>>b;
        cin>>t;
     mat[a][b]=t;
     mat[b][a]=t;
    }
    
    cin>>a;
    cin>>b;
    d[a]=0;
    for(int i=0; i<N+1; i++){
        if(mat[a][i]==0){
            d[i]=0;
        }
        if(mat[a][i]==1){
            d[i]=1;
            ukljucena[i]=true;
        }
    }
    gotov[a]=true;
    gotov[0]=true;
     while(true){
        int mali = 9999;
        int indx = -22;
        for(int i = 1; i<N+1; i++){
            if(!gotov[i] &&d[i]<mali && d[i]!=999){
                mali = d[i];
                indx = i;
            }
        }
        if(indx==-22){
            break;
        }
    
        for(int i = 1; i<N+1; i++){
            
            if(mat[indx][i]!=999 && gotov[i]!=true){
                    int pomoc;
                    if(ukljucena[indx]==true && mat[indx][i]==1){
                        pomoc=0;
                        cout<<endl;
                        
                    }
                    if(ukljucena[indx]==true && mat[indx][i]==0){
                            pomoc=1;
                            
                        }
                    if(ukljucena[indx]==false && mat[indx][i]==0){
                                pomoc=0;
                                
                            }
                    if(ukljucena[indx]=false && mat[indx][i]==1){
                                    pomoc=1;
                                    
                                }
                                cout<<endl;
            if(d[i]>d[indx]+pomoc){
                    
                d[i]=d[indx]+pomoc;
                if(pomoc==1){
                    ukljucena[i+1]=!ukljucena[indx];
                }
                if(pomoc==0){
                    ukljucena[i+1]=ukljucena[indx];
                }

            }
            }
        }
        gotov[indx] = true;
       
    }

    if(d[b]==999){
        cout<<"-1";
    }
    else{
        cout<<d[b];
    }


    return 0;
}