#P0816. 双通道入场

双通道入场

题目描述

训练营门口有两条入场通道,分别记为 A 通道和 B 通道。

每位同学手里都有一个入场号码。为了让现场秩序更顺畅,老师已经提前把两条通道里的同学都按号码从小到大排好了队。

现在要把两条通道合并成一条入场队伍。合并时只能从每条通道的队首选择同学:

  • 如果两个队首同学的号码不同,号码较小的同学先进入;
  • 如果两个队首同学的号码相同,A 通道的同学先进入;
  • 如果某一条通道已经没有同学了,就让另一条通道剩下的同学按原顺序依次进入。

请你输出最终的入场顺序。

输入格式

第一行输入两个整数 n 和 m,表示 A 通道和 B 通道的人数。

第二行输入 n 个整数,表示 A 通道中同学的入场号码。

第三行输入 m 个整数,表示 B 通道中同学的入场号码。

输入保证两条通道中的号码都已经按从小到大的顺序排列。

输出格式

输出一行,共 n + m 个整数,表示最终的入场顺序。

相邻两个整数之间用一个空格隔开。

样例

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

样例说明

一开始 A 通道队首是 1,B 通道队首是 2,所以 1 先进入。

之后比较 3 和 2,所以 2 进入。

当两个队首都为 3 时,按规则先让 A 通道的 3 进入;接着 A 通道队首仍为 3,再和 B 通道的 3 比较,仍然先让 A 通道进入;最后 B 通道的 3 再进入。

继续按照规则合并,最终顺序为 1 2 3 3 3 6 8 9 10。

数据范围

  • 1 <= n, m <= 2000000

    • 1 <= 入场号码 <= 1000000000
    • 两条通道中的号码均为非递减顺序