#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

#define MAX_VAL 999999

#define A_SANTA 0
#define B_SANTA 1
#define STANJE  2

int n, m, mika, laza;
int (*put)[3];
int *broj_menjanja;
int brojac_menjanja = 0;

int backtrc(int, int, bool, bool, int);

int main()
{
    scanf("%d%d", &n, &m);

    if (n < 1 || m < 1 || n > 200000 || m > 200000)
        return 0;

    put = malloc(m * sizeof(int[3]));
    broj_menjanja = calloc(m * 3, sizeof(int));

    for (int i = 0; i < m; i++) {
        scanf("%d%d%d", &put[i][A_SANTA], &put[i][B_SANTA], &put[i][STANJE]);

        if (put[i][A_SANTA] < 1 || put[i][B_SANTA] < 1 || put[i][A_SANTA] > n || put[i][B_SANTA] > n || put[i][STANJE] < 0 || put[i][STANJE] > 1)
            return 0;
    }

    scanf("%d%d", &mika, &laza);

    if (mika < 1 || laza < 1 || mika > n || laza > n)
        return 0;

    backtrc(mika, 0, 0, false, 1);

    int min = broj_menjanja[0];

    for (int i = 1; i < brojac_menjanja; i++)
        if (min < broj_menjanja[i])
            min = broj_menjanja[i];

    if (brojac_menjanja == 0 || min >= MAX_VAL)
        min = -1;

    printf("%d", min);
}

int backtrc(int trenutna_santa, int broj_menj, bool stanje, bool je_rekurzija, int brojac) // za stanje mora da se stavi 0 i za trenutna_santa mika u pozivu iz main() 
{
    if (trenutna_santa == laza) {
        broj_menjanja[brojac_menjanja] = broj_menj;
        brojac_menjanja++;
        return 0;
    }

    if (brojac > m) {
        return 0;
    }

    int *broj_p = malloc(m * sizeof(int));

    for (int i = 0; i < m; i++)
    {
        if (put[i][A_SANTA] == trenutna_santa || put[i][B_SANTA] == trenutna_santa)
        {
            broj_p[i] = broj_menj;

            if (stanje != put[i][STANJE])
                broj_p[i]++;
            
            broj_p[i] += backtrc((put[i][A_SANTA] == trenutna_santa ? put[i][B_SANTA] : put[i][A_SANTA]), broj_p[i], stanje == put[i][STANJE] ? stanje : !stanje, true, brojac + 1);
        }
        else
        {
            broj_p[i] = MAX_VAL;
        }
    }

    free(broj_p);

    return 0;
}