小红的左看右看构造
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

在此题中,我们认为数组以从左到右的顺序排列。
对于一个数组 ,小红定义「左看」与「右看」为:
\hspace{23pt} \bullet 「左看」从左到右依次记录数组中满足“大于其侧所有数”的数组成的新数组(按取出顺序)
\hspace{23pt} \bullet 「右看」从右到左依次记录数组中满足“大于其侧所有数”的数组成的新数组(按取出顺序)。
如,设一个数组 b = \{2,3,4,3,5,1\},则「左看」为 「右看」为 

小红给出了一个长为 x 的数组  与一个长为 y 的数组 ,他希望小苯能构造一个长为  的数组,使得  是其「左看」, 是其「右看」。请你帮帮小苯。
特殊的,保证数组  严格单调递增。

输入描述:

第一行输入三个整数 x,y,n\left(1\leqq x,y,n\leqq2\times10^5\right)
第二行输入 个整数 c_i\left(1\leqq c_i\leqq2\times10^5 \right)
第三行输入 y 个整数 d_i\left(1\leqq d_i\leqq2\times10^5 \right)

输出描述:

如果不存在合法的构造,请输出 ,否则输出  个正整数,代表所构造的数组。

如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
示例1

输入

复制
2 3 4
1 5
1 4 5

输出

复制
1 5 4 1

说明

输出的数组的「左看」为\{1, 5\},「右看」为 \{1,4,5\},符合要求。
示例2

输入

复制
1 1 2
1
2

输出

复制
-1

说明

可以证明,不存在符合要求的数组。