長さ $N$ の正整数列 $A=(A_1, A_2, \ldots, A_N)$ と,長さ $M$ の正整数列 $B=(B_1, B_2, \ldots, B_M)$ が与えられる.これらの数列は,共に広義単調増加数列である.つまり,$A_1 \le A_2 \le \cdots \le A_N$,$B_1 \le B_2 \le \cdots \le B_M$ を満たす.
以下のアルゴリズムを用いて,これらの数列から,長さ $N+M$ の正整数列 $C=(C_1, C_2, \ldots, C_{N+M})$ を生成する.
- はじめ $C$ は空とする.
- $A$ と $B$ がどちらも空の場合,終了する.
- $A$ と $B$ のどちらかが空の場合,そうでない数列を $t$ とおく.どちらも空でない場合,先頭の要素が小さい数列を $t$ とおく.ただし,$A$ と $B$ の先頭の要素が同じ値のときは $A$ を $t$ とおく.
- $t$ の先頭の要素を $C$ の末尾に追加する.
- $t$ の先頭の要素を削除する.
- に戻る.
広義単調増加な正整数列 $A$,$B$ が与えられたとき,このアルゴリズムにより生成される正整数列 $C$ を出力するプログラムを作成せよ.
入力
入力は以下の形式で標準入力から与えられる.
$$ \begin{aligned} &N \ M \\ &A_1 \ A_2 \ \cdots \ A_N \\ &B_1 \ B_2 \ \cdots \ B_M \end{aligned} $$
出力
標準出力に $N + M$ 行出力せよ. $k$ 行目($1 \le k \le N + M$)には,$C_k$ を出力せよ.
制約
- $1 \le N \le 500$.
- $1 \le M \le 500$.
- $1 \le A_1 \le A_2 \le \cdots \le A_N \le 2000$.
- $1 \le B_1 \le B_2 \le \cdots \le B_M \le 2000$.
入出力例
入力 1
2 1 1 2 2
出力 1
1 2 2
解説 1
アルゴリズムを行う前,$A=(1,2), B=(2)$ である.以下のように数列 $C$ が生成される.
- 数列 $A$ の先頭の要素は $1$,数列 $B$ の先頭の要素は $2$ なので,数列 $A$ の先頭の要素を数列 $C$ に追加しこれを数列 $A$ から削除する.
- 数列 $A$ の先頭の要素は $2$,数列 $B$ の先頭の要素は $2$ なので,数列 $A$ の先頭の要素を数列 $C$ に追加しこれを数列 $A$ から削除する.
- 数列 $A$ は空なので,数列 $B$ の先頭の要素を数列 $C$ に追加しこれを数列 $B$ から削除する.
- 数列 $A$ も数列 $B$ も空なので,アルゴリズムを終了する.
アルゴリズムが終了した後,数列 $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