时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
Special Judge, 64bit IO Format: %lld

题目描述

\hspace{15pt}小明手里有 n 个数,记作 a_1,a_2,\dots,a_n;小红手里有 m 个数,记作 b_1,b_2,\dots,b_m。恰好,这 n+m 个数放在一起恰好构成一个长度为 n+m排列
\hspace{15pt}现在,两人各从手中选择两个互不相同的数字,使得他们手里剩余数字之和的差值依旧保持不变。换句话说,记小明丢掉了 a_i,a_j,小红丢掉了 b_p,b_q,需要使得下式成立:

\displaystyle\sum\limits_{k=1}^{n}a_k-\sum\limits_{k=1}^{m}b_k=\left(\sum\limits_{k=1}^{n}a_k-a_i-a_j\right)-\left(\sum\limits_{k=1}^{m}b_k-b_p-b_q\right)

\hspace{15pt}输出丢掉的四个数(顺序不限,但要求这四个数中,恰有两个来自小明、两个来自小红),或者输出 -1 报告无解。
\hspace{15pt}输入只给出小明的 n 个数,剩下没出现的部分就是小红的。

【名词解释】
\hspace{15pt}长度为 n排列:由 1,2,\dots,nn 个整数、按任意顺序组成的数组(每个整数均恰好出现一次)。例如,\{2,3,1,5,4\} 是一个长度为 5 的排列,而 \{1,2,2\}\{1,3,4\} 都不是排列,因为前者存在重复元素,后者包含了超出范围的数。

输入描述:

\hspace{15pt}第一行输入两个整数 n,m \left(2\leq n\leq 2\times 10^5,2\leq m\leq 10^9\right),表示小明手里数字的个数、小红手里数字的个数。
\hspace{15pt}第二行输入 n 个两两不同的整数 a_1,a_2,\dots,a_n \left(1\leq a_i \leq n+m\right),表示小明手里的数字。

输出描述:

\hspace{15pt}如果不存在满足条件的丢掉方式,直接输出 -1;否则,在一行上输出四个数字,表示丢掉的四个数。
\hspace{15pt}如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
示例1

输入

复制
6 7
1 3 4 6 2 7

输出

复制
6 7 5 8

说明

\hspace{15pt}在这个样例中,小明丢掉了 67,小红丢掉了 58
示例2

输入

复制
6 4
1 2 3 4 9 10

输出

复制
3 10 6 7

说明

\hspace{15pt}在这个样例中,小明丢掉了 310,小红丢掉了 67
\hspace{15pt}此外,2,10,5,7 也是一组合法的答案。
示例3

输入

复制
2 2
3 4

输出

复制
-1