using System;


class Program
	{
	struct Santa
		{
		public int id;
		public List<int> vezeSa;
		public List<int> vrstaVeze;
		}
	static int Rekurzija(Santa[] niz,int laza,int stanjemasine,int indeks)
	{	if(indeks == laza){
			return 0;
			}
		int drzi = 9999999;
		int srzi = 0;
		//Console.WriteLine("ind " + indeks);
		for(int i = 0;i<niz[indeks].vezeSa.Count;i++)
			{
				int santaDo = niz[indeks].vezeSa[i];
				int vrstVeze = niz[indeks].vrstaVeze[i];
				int sledecindeks = niz[santaDo - 1].id;
			if (stanjemasine == 0 && vrstVeze == 1) {
				srzi = Math.Min(drzi,1 + Rekurzija(niz, laza, 1, sledecindeks-1));
				drzi = srzi;
				} else if (stanjemasine == 1 && vrstVeze == 0) {
				srzi = Math.Min(drzi,1 + Rekurzija(niz, laza, 0, sledecindeks-1));
				drzi = srzi;
				}
			else{
				srzi = Math.Min(drzi,0 + Rekurzija(niz, laza, stanjemasine, sledecindeks - 1 ));
				drzi = srzi;
				}
			}
		//Console.WriteLine("Lol");
		return srzi;
	}
	static void Main(string[] args)
		{
			string[] dumdum = Console.ReadLine().Split(' ');
			int brojSanti = int.Parse(dumdum[0]),brojPuteva = int.Parse(dumdum[1]);
			Santa[] sante = new Santa[brojSanti];
			for(int i = 0;i<brojSanti;i++)
			{
				sante[i].id = i+1;
			sante[i].vezeSa = new List<int>();
			sante[i].vrstaVeze = new List<int>();
			}
			for(int i = 0;i<brojPuteva;i++)
			{
			string[] mudmud = Console.ReadLine().Split(' ');
			int santa1 = int.Parse(mudmud[0]);
			int santa2 = int.Parse(mudmud[1]);
			int veza = int.Parse(mudmud[2]);
			sante[santa1 - 1].vezeSa.Add(santa2);
			sante[santa1 - 1].vrstaVeze.Add(veza);
			}
		string[] dummud = Console.ReadLine().Split(' ');
		int laz = int.Parse(dummud[1]);
		int mik = int.Parse(dummud[0]);
		Console.WriteLine("REKURZIJA " + Rekurzija(sante, laz, 0, mik - 1));
		}
	}