atcoder#ABC289B. [ABC289B] レ

[ABC289B] レ

配点 : 200200

問題文

高橋君は漢文の勉強をしていて、漢字を読む順番が分からず困っています。高橋君を助けましょう!

11 から NN までの NN 個の整数が小さい方から順に 1 列に並んでいます。
整数の間に MM 個の「レ」が挟まっています。ii 個目の「レ」は、整数 aia_i と整数 ai+1a_i + 1 の間にあります。

あなたは次の手順に従って、NN 個の整数を 11 回ずつ全て読みます。

  • まず、頂点に 11 から NN までの番号がついた NN 頂点 MM 辺の無向グラフ GG を考える。ii 本目の辺は頂点 aia_i と頂点 ai+1a_i + 1 を結んでいる。
  • そして、読まれていない整数が無くなるまで次の操作を繰り返す。- 読まれていない整数のうち最小のものを xx とする。頂点 xx が含まれる連結成分 CC を選び、CC に含まれる頂点の番号を大きい方から順に全て読む。
  • 読まれていない整数のうち最小のものを xx とする。頂点 xx が含まれる連結成分 CC を選び、CC に含まれる頂点の番号を大きい方から順に全て読む。

例えば、整数と「レ」が

image

という順番で並んでいる場合を考えます。(この場合 N=5,M=3,a=(1,3,4)N = 5, M = 3, a = (1, 3, 4) です。) このとき、整数が読まれる順番は以下の手順によって 2,1,5,4,32, 1, 5, 4, 3 に決定します。

  • 最初、読まれていない整数のうち最小のものは 11 であり、グラフ GG の頂点 11 を含む連結成分に含まれる頂点は {1,2}\lbrace 1, 2 \rbrace である。よって 2,12, 1 がこの順で読まれる。
  • 次に、読まれていない整数のうち最小のものは 33 であり、グラフ GG の頂点 33 を含む連結成分に含まれる頂点は {3,4,5}\lbrace 3, 4, 5 \rbrace である。よって 5,4,35, 4, 3 がこの順で読まれる。
  • すべての整数が読まれたので手順を終了する。

N,M,(a1,a2,,aM)N, M, (a_1, a_2, \dots, a_M) が入力として与えられるので、 NN 個の整数を読む順番を出力してください。

連結成分とは

あるグラフの 部分グラフ とは、元のグラフのいくつかの頂点といくつかの辺を選んでできるグラフのことをいいます。
グラフが 連結 であるとは、グラフに含まれるすべての頂点同士が辺を経由して互いに行き来できることをいいます。
連結成分 とは、連結な部分グラフのうち、そのグラフを含んだより大きい連結な部分グラフが存在しないものをいいます。

制約

  • 1N1001 \leq N \leq 100
  • 0MN10 \leq M \leq N - 1
  • 1a1<a2<<aMN11 \leq a_1 \lt a_2 \lt \dots \lt a_M \leq N-1
  • 入力される値は全て整数

入力

入力は以下の形式で標準入力から与えられる。

NN MM

a1a_1 a2a_2 \dots aMa_M

出力

答えを以下の形式で出力せよ。ここで pip_i は、ii 番目に読まれる整数を意味する。

p1p_1 p2p_2 \dots pNp_N

5 3
1 3 4
2 1 5 4 3

問題文の例にある通り、整数と「レ」が

image

という順で並んでいる場合は 2,1,5,4,32, 1, 5, 4, 3 の順で読みます。

5 0
1 2 3 4 5

「レ」が存在しない場合もあります。

10 6
1 2 3 7 8 9
4 3 2 1 5 6 10 9 8 7