N,M,K,S,T=map(int,input().split()) list1=[[0,0,0]] list2=[] for i in range(M): A=list(map(int,input().split())) list1.append([A[0],A[1],A[2]]) list2.append(A[0]) list1.sort() if N-1>len(set(list2)): print(-1) exit() else: lista1=[[10**10,10**10,10**10]] lista2=[[10**10,10**10,10**10]] lista3=[[10**10,10**10,10**10]] for j in range(len(list1)): if list1[j][0]==1: lista1.append([list1[j][1],list1[j][2],abs(S-list1[j][1])]) for k in range(2,N-1): for l in range(len(list1)): if list1[l][0]==k: lista2.append([list1[l][1],list1[l][2],10**10]) for m in range(len(lista2)): for n in range(len(lista1)): if lista2[m][2]>abs(lista1[n][1]-lista2[m][0]): lista2[m][2]=abs(lista1[n][1]-lista2[m][0]) lista1=lista2 lista2=lista3 #print(lista1) ans=10**10 for x in range(len(lista1)): if lista1[x][2]+abs(lista1[x][1]-T)