import sys input = sys.stdin.readline from heapq import heappop,heappush N,M=list(map(int,input().split())) E=[[] for i in range(N+1)] for i in range(M): a,b,c,x=list(map(int,input().split())) E[a].append((b,c,x)) E[b].append((a,c,x)) DIS=[[1<<63]*(M+1) for i in range(2)] DIS[0][N]=0 Q=[(0,N,0)] while Q: distance,town,ind=heappop(Q) if DIS[ind][town]!=distance: continue for to,cost,com in E[town]: if com==0: toind=ind else: toind=1 if DIS[toind][to]>distance+cost: DIS[toind][to]=distance+cost heappush(Q,(distance+cost,to,toind)) for i in range(1,N): print(DIS[1][i])