#include <bits/stdc++.h>
#define ff first
#define ss second
#define ALL_THE(CAKE,LIE) for(auto LIE =CAKE.begin(); LIE != CAKE.end(); LIE++)
using namespace std;

int main() {
	int M,N,st,fin;
	while(scanf(" %d %d %d %d",&M,&N,&st,&fin)) {
		if(M == 0) return 0;
		vector< vector< pair<int,long long> > > G(N);
		st--, fin--;
		for(int i =0; i < M; i++) {
			int a,b;
			double c;
			scanf(" %d %d %lf",&a,&b,&c);
			int C =(int)(c*1000);
			while(C > c*1000+0.1) C--;
			while(C < c*1000-0.1) C++;
			G[--a].push_back(make_pair(--b,-C));}
		long long inf =1000000000000000LL;
		vector<long long> D(N,inf);
		D[st] =0;
		for(int i =0; i < N+5; i++) {
			for(int j =0; j < N; j++) ALL_THE(G[j],it)
				D[it->ff] =min(D[it->ff],max(-inf,D[j]+it->ss));
			}
		vector<long long> D2 =D;
		for(int i =0; i < N+5; i++) {
			for(int j =0; j < N; j++) ALL_THE(G[j],it)
				D2[it->ff] =min(D2[it->ff],max(-inf,D2[j]+it->ss));
			}
		if(D2[fin] == -inf || D2[fin] < D[fin]) printf("TRUE\n");
		else printf("FALSE\n");}
	}