import heapq N,M,S,G=map(int,input().split()) L=[[] for _ in range(N)] for _ in range(M): a,b,c=map(int,input().split()) L[a].append([b,c]) L[b].append([a,c]) q=[[0,[S]],[1e9,[]]] d={} while True: e,n=heapq.heappop(q) t=n[-1] if t not in d: d[t]=True if t==G: break for j,i in L[t]: heapq.heappush(q,[i+e,n+[j]]) print(" ".join(map(str,n)))