import sys input = lambda : sys.stdin.readline().rstrip() sys.setrecursionlimit(2*10**5+10) write = lambda x: sys.stdout.write(x+"\n") debug = lambda x: sys.stderr.write(x+"\n") writef = lambda x: print("{:.12f}".format(x)) n,m = list(map(int, input().split())) ns = [[] for _ in range(n)] s = 0 for i in range(m): a,b,c,x = map(int, input().split()) a -= 1 b -= 1 ns[a].append((c,b,x)) ns[b].append((c,a,x)) s += c from heapq import heappop as hpp, heappush as hp def t2i(*vs): n = len(vs) val = 1 nvs = [1] for v in vs[::-1]: val *= v nvs.append(val) vs = tuple(nvs[::-1]) def to(*args): return sum((v1*v2 for v1,v2 in zip(vs, args))) def frm(val): res = [] for v in vs: tmp, val = divmod(val, v) res.append(tmp) return res return to,frm to,frm = t2i(n,2) inf = 2*s + 10 vals = [[inf]*n for _ in range(2)] vals[0][n-1] = 0 q = [to(0, n-1, 0)] while q: d,u,x = frm(hpp(q)) if vals[x][u]nd: vals[nx][v] = nd hp(q, to(nd, v, nx)) ans = vals[1] write("\n".join(map(str, ans[:n-1])))