def parse_input():
    n, m = list(map(int, input().split()))
    grooves = []
    for _ in range(m):
        grooves.append(list(map(int, input().split())))
    return n, m, grooves

def main():
    n, m, grooves = parse_input()
    max_y = max(grooves, key=lambda g: g[1])[1]
    y = [[] for _ in range(max_y)]
    for groove in grooves:
        xp, yp, xq, yq = groove
        y[yp - 1].append([xp, xq])
    hunters = list(range(n))
    for i in range(max_y):
        for (s1, s2) in y[i]:
            tmp = hunters[s2 - 1]
            hunters[s2 - 1] = hunters[s1 - 1]
            hunters[s1 - 1] = tmp
    ended = [None] * n
    for i, hunter in enumerate(hunters):
        ended[hunter] = str(i + 1)
    print('\n'.join(ended))

if __name__ == "__main__":
    main()
