#include <bits/stdc++.h>

using namespace std;

int main()
{

    long int m, n;
    cin >> n >> m;
    
    short graf[n][n];
    long tez[n + 1];
    short pre[n];
    
    tez[n] = 200001;
    long int a, b, u, v;
    for(int i = 0; i < n; i++)
    {
        tez[i] = -1;
        pre[i] = 1;
        for(int j = 0; j < n; j++)
        {
            graf[i][j] = 0;
        }
    }
    
    for(int i = 0; i < m; i++)
    {
        cin >> a >> b >> graf[b - 1][a - 1];
        graf[b - 1][a - 1]++;
        graf[a - 1][b - 1] = graf[b - 1][a - 1];
    }
    
    cin >> u >> v;
    u--;
    v--;

    tez[u] = 0;
    long pom = 0;
    
    while(pom < n - 1)
    {
        for(int i = 0; i < n; i++)
        {
            if((graf[u][i] != 0) && (graf[i][i] != 1) && (u != i))
            {
                graf[i][i] = 2;
                if(tez[i] == -1)
                {
                    if(graf[u][i] == pre[u])
                    {
                        tez[i] = tez[u];
                    }
                    else
                    {
                        tez[i] = tez[u] + 1;
                        pre[i] = graf[u][i];
                    }
                }
                else
                {
                    if((pre[u] == 0) && (tez[i] > tez[u]))
                    {
                        tez[i] = tez[u];
                        pre[i] = graf[u][i];
                    }
                    else
                    {
                        if((graf[u][i] == pre[u]) && (tez[i] > tez[u]))
                        {
                            tez[i] = tez[u];
                        }
                        else if(tez[i] > tez[u] + 1)
                        {
                            tez[i] = tez[u] + 1;
                            pre[i] = graf[u][i];
                        }
                        else
                        {
                            pre[i] = 0;
                        }
                    }
                }
            }
        }
        graf[u][u] = 1;
        u = n;
        for(int i = 0; i < n; i++)
        {
            if((tez[i] < tez[u]) && (graf[i][i] == 2))
            {
                u = i;
            }
        }
        pom++;
    }
    cout << tez[v];
    return 0;
}