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

小明手里有

个数,记作

;小红手里有

个数,记作

。恰好,这

个数放在一起恰好构成一个长度为

的
排列。

现在,两人各从手中选择两个
互不相同的数字,使得他们手里剩余数字之和的差值依旧保持不变。换句话说,记小明丢掉了

,小红丢掉了

,需要使得下式成立:
-%5Cleft(%5Csum%5Climits_%7Bk%3D1%7D%5E%7Bm%7Db_k-b_p-b_q%5Cright))

输出丢掉的四个数(顺序不限,但要求这四个数中,恰有两个来自小明、两个来自小红),或者输出

报告无解。

输入只给出小明的

个数,剩下没出现的部分就是小红的。
【名词解释】

长度为

的
排列:由

这

个整数、按任意顺序组成的数组(每个整数均恰好出现一次)。例如,

是一个长度为

的排列,而

和

都不是排列,因为前者存在重复元素,后者包含了超出范围的数。
输入描述:
第一行输入两个整数
,表示小明手里数字的个数、小红手里数字的个数。
第二行输入
个两两不同的整数
,表示小明手里的数字。
输出描述:
如果不存在满足条件的丢掉方式,直接输出
;否则,在一行上输出四个数字,表示丢掉的四个数。
如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。