I - チーズとネズミ (Cheeses and Mice) 解説 /

実行時間制限: 2 sec / メモリ制限: 1024 MiB

配点 : 100

問題文

ネズミの住む巣穴があり,巣穴の前に N 個のチーズが一列に並んでいる. 列の先頭から i 番目 (1 \leqq i \leqq N) の位置にあるチーズの大きさi である.

巣穴の中にはネズミが M 匹住んでおり,1 から M までの番号が付けられている. ネズミ j (1 \leqq j \leqq M) は大きさが A_j 以上のチーズを好む. ここで,A_1 < A_2 < \cdots < A_M が満たされる.

ネズミたちはこれから N 日のあいだ毎日,以下の一連の行動をおこなう.

  1. j = 1, 2, \dots, M の順に,以下の操作をおこなう.
    • ネズミ j が好むチーズが列の中に存在するならば,そのうち最も先頭に近い位置にあるものを選び,先頭のチーズと位置を入れ替える.ここで,選んだチーズが先頭にある場合や,好むチーズが存在しない場合は,何もしない.
  2. 列の先頭にあるチーズを列から取り除き,巣穴の中に引き入れる.

チーズとネズミの数,およびネズミの好みの情報が与えられたとき,N 日間のそれぞれの日に巣穴の中に引き入れられるチーズの大きさを求めるプログラムを作成せよ.


入力

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

N M
A_1 A_2 \cdots A_{M}

出力

標準出力に N 行出力せよ.

k 行目 (1 \leqq k \leqq N) には,k 日目に巣穴の中に引き入れられるチーズの大きさを出力せよ.


制約

  • 1 \leqq M \leqq N \leqq 300\,000
  • 1 \leqq A_j \leqq N (1 \leqq j \leqq M).
  • A_1 < A_2 < \cdots < A_M
  • 入力される値はすべて整数である.

小課題

  1. (11 点) N \leqq 300
  2. (16 点) N \leqq 5\,000
  3. (35 点) M = 1
  4. (38 点) 追加の制約はない.

入力例 1

5 2
3 4

出力例 1

4
5
3
2
1

以下ではチーズの列の内容を,大きさを先頭から順に並べた数列で表す.はじめ,列は (1,2,3,4,5) である. 5 日間のネズミたちの行動は,以下のように進行する.

  • ネズミ 1 は大きさ 3 のチーズを選び,列は (3,2,1,4,5) になる.ネズミ 2 は大きさ 4 のチーズを選び,列は (4,2,1,3,5) になる.最後に大きさ 4 のチーズが列から取り除かれ,列は (2,1,3,5) になる.
  • ネズミ 1 は大きさ 3 のチーズを選び,列は (3,1,2,5) になる.ネズミ 2 は大きさ 5 のチーズを選び,列は (5,1,2,3) になる.最後に大きさ 5 のチーズが列から取り除かれ,列は (1,2,3) になる.
  • ネズミ 1 は大きさ 3 のチーズを選び,列は (3,2,1) になる.ネズミ 2 は何もしない.最後に大きさ 3 のチーズが列から取り除かれ,列は (2,1) になる.
  • どちらのネズミも何もしない.大きさ 2 のチーズが列から取り除かれ,列は (1) になる.
  • どちらのネズミも何もしない.大きさ 1 のチーズが列から取り除かれ,列は空になる.

この入力例は小課題 1,2,4 の制約を満たす.


入力例 2

3 1
2

出力例 2

2
3
1

この入力例はすべての小課題の制約を満たす.