#!/usr/bin/env python3

from itertools import repeat


def first_greater_in_list(list, t):
    for x in list:
        if abs(x) > t:
            return x
    return 0


def follow_path(segments, t):
    if t not in segments.keys():
        return t
    line = t
    height = 0
    while True:
        height = first_greater_in_list(segments[line], height)
        if height == 0:
            return line
        elif height > 0:
            line += 1
        else:
            line -= 1
        height = abs(height)


def main():
    n, m = list(map(int, input().split()))
    segments = dict()
    vertical_position = 0
    for _ in range(m):
        vertical_position = vertical_position + 1
        left_endpoint = int(input())
        if left_endpoint in segments.keys():
            segments[left_endpoint].append(vertical_position)
        else:
            segments[left_endpoint] = [vertical_position]
        if left_endpoint + 1 in segments.keys():
            segments[left_endpoint + 1].append(-vertical_position)
        else:
            segments[left_endpoint + 1] = [-vertical_position]

    for l in segments.values():
        l.sort(key=abs)

    tmp = [x for x in range(1, n + 1)]
    map_answer = list(map(follow_path, repeat(segments), tmp))
    final_answer = [0 for x in range(n + 1)]
    for x in range(1, n + 1):
        final_answer[map_answer[x - 1]] = x

    for x in range(1, len(final_answer)):
        print(str(final_answer[x]))


if __name__ == "__main__":
    main()
