#include <iostream>
using namespace std;
 
int NadjiBrojPromena(int src, int dst, int startIndex, int brojPuteva, long* start, long* end, int* tip)
{
	int pocetnoStanje = 0;
	long brojPromena = 0;
	bool nadjen = false;
	// start
	for (int i = startIndex; i < brojPuteva; i++)
	{
		if (start[i] == src)
		{
			if (tip[i] != pocetnoStanje)
			{
				brojPromena++;
				pocetnoStanje = tip[i];
			}
 
			if (end[i] == dst)
			{
				nadjen = true;
				break;
			}
			else
			{
				src = end[i];
				//brojPromena += NadjiBrojPromena(end[i], dst, i, brojPuteva, start, end, tip);
			}
		}
	}
 
	if (nadjen)
		return brojPromena;
	else
		return -1;
}
 
int main()
{
	long brojSanti;
	long brojPuteva;
 
	cin >> brojSanti >> brojPuteva;
 
	long* start = new long[brojPuteva];
	long* end = new long[brojPuteva];
	int* tip = new int[brojPuteva];
 
	for (int i = 0; i < brojPuteva; i++)
	{
		int poc, kraj;
		cin >> poc >> kraj >> tip[i];
		start[i] = min(poc, kraj);
		end[i] = max(poc, kraj);
	}
	
	long src, dst;
 
	cin >> src >> dst;
	
	long brojPromena = brojPuteva * 2;
 
	// start
	for (int i = 0; i < brojPuteva; i++)
	{
		if (start[i] == src)
		{
			int promene = NadjiBrojPromena(src, dst, i, brojPuteva, start, end, tip);
			if (promene >= 0
				&& promene < brojPromena)
			{
				brojPromena = promene;
			}
		}
	}
 
	cout << brojPromena;
	return 0;
}