#joi2020yo1ac. [joi2020_yo1a_c]マージ (Merge)

[joi2020_yo1a_c]マージ (Merge)

問題文

長さ NN の正整数列 A=(A1,A2,ldots,AN)A=(A_1, A_2, \\ldots, A_N) と,長さ MM の正整数列 B=(B1,B2,ldots,BM)B=(B_1, B_2, \\ldots, B_M) が与えられる. これらの数列は,共に広義単調増加数列である.つまり,A1leqqA2leqqcdotsleqqANA_1 \\leqq A_2 \\leqq \\cdots \\leqq A_N, B1leqqB2leqqcdotsleqqBMB_1 \\leqq B_2 \\leqq \\cdots \\leqq B_M を満たす.

以下のアルゴリズムを用いて,これらの数列から,長さ N+MN+M の正整数列 C=(C1,C2,ldots,CN+M)C=(C_1, C_2, \\ldots, C_{N+M}) を生成する.

  1. はじめ CC は空とする.
  2. AABB がどちらも空の場合,終了する.
  3. AABB のどちらかが空の場合,そうでない数列を tt とおく.どちらも空でない場合,先頭の要素が小さい数列を tt とおく.ただし,AABB の先頭の要素が同じ値のときは AAtt とおく.
  4. tt の先頭の要素を CC の末尾に追加する.
  5. tt の先頭の要素を削除する.
  6. 2. に戻る.

広義単調増加な正整数列 AA, BB が与えられたとき,このアルゴリズムにより生成される正整数列 CC を出力するプログラムを作成せよ.

制約

  • 1leqqNleqq5001 \\leqq N \\leqq 500
  • 1leqqMleqq5001 \\leqq M \\leqq 500
  • $1 \\leqq A_1 \\leqq A_2 \\leqq \\cdots \\leqq A_N \\leqq 2000$.
  • $1 \\leqq B_1 \\leqq B_2 \\leqq \\cdots \\leqq B_M \\leqq 2000$.

入力

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

NN MM A1A_1 A2A_2 cdots\\cdots ANA_N B1B_1 B2B_2 cdots\\cdots BMB_M

出力

標準出力に N+MN + M 行出力せよ.

kk 行目 (1leqqkleqqN+M1 \\leqq k \\leqq N + M) には,CkC_k を出力せよ.


入力例 1

2 1
1 2
2

出力例 1

1
2
2

アルゴリズムを行う前,A=(1,2),B=(2)A=(1,2), B=(2) である. 以下のように数列 CC が生成される.

  • 数列 AA の先頭の要素は 11,数列 BB の先頭の要素は 22 なので,数列 AA の先頭の要素を数列 CC に追加しこれを数列 AA から削除する.
  • 数列 AA の先頭の要素は 22,数列 BB の先頭の要素は 22 なので,数列 AA の先頭の要素を数列 CC に追加しこれを数列 AA から削除する.
  • 数列 AA は空なので,数列 BB の先頭の要素を数列 CC に追加しこれを数列 BB から削除する.
  • 数列 AA も数列 BB も空なので,アルゴリズムを終了する.

アルゴリズムが終了した後,数列 C=(1,2,2)C=(1,2,2) である.


入力例 2

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

出力例 2

1
3
3
3
4
5
6
7
8
8
9