#include <stdio.h>

long long bin(long long n1[], long long levo, long long desno, int a){
	
	int i, da, sredina;
	
	while(levo<=desno){
		
		sredina = (levo+desno)/2;
		if(a == n1[sredina]) return sredina;
		else if(a>n1[sredina]) levo = sredina+1;
			else desno = sredina-1;
		
	}
	
	return -1;
}


int main(){
	
	long long n, q, i, i1, m, l, p=0, min, p1 = 0, poz;
	
	scanf("%lld %lld", &n, &q);
	
	long long n1[n], n2[n], n3[n], min1[n];
	
	for(i = 0; i<q; i++){
		
		scanf("%lld %lld %lld", &n1[i], &n2[i], &n3[i]);
		
		if(min < n2[i]){
			min = n2[i];
			poz = i;
		}
		
	}
	
	scanf("%lld %lld", &m, &l);
	
	if(bin(n2, 0, n-1, l) == -1){
		printf("-1");
		return -1;
	}
	
	for(i = m-1; i<n; i++){
	
		if(i == 0) p1 = p1+m;
			else p1++;
		for(i1 = 0; i1<q; i1++){
		
		if(n2[i1]-n1[i1] == 0) continue;
	
		if(n2[i1] - n1[i1] > min && n1[i] == p1 || i1 == 0) {
			min = n2[i1] - n1[i1];
			min1[p] = n3[i];
			poz = i1;
			
			
			
		}
		
		if(i1 == n-1){
			n1[poz] = 0;
			n2[poz] = 0;
			
		}
		
		

	}

		if(p == 0 && i1 == n-1){
			p--;
			i =i-2;	
				if(i == n-1) break;
			}	
	

	if(min1[p] == 1 && min1[p-1] == 1){
		continue;
	}
	if(min1[p] == 1) p++;
	
	if(min1[p] == 0 && min1[p-1] == 1) p++;
		
		if(p1 == l) break;
		
	}
	
	if(n3[n-1] == 0 && p%2 != 0) p++;
		
	printf("%d", p);
	
	
	return 0;
}