我们有一个天平。天平平衡的条件是:两个托盘均为空,或者两个托盘上的砝码总重量相等。在给定的砝码集合中,我们需要找到两个不相交的子集,使得将其中一个子集的所有砝码放在一个托盘上,将另一个子集的所有砝码放在另一个托盘上时,天平保持平衡。此外,在所有能使天平保持平衡的方案中,我们需要选择包含最重砝码的那一种。如果存在多个这样的方案,只需输出其中任意一个。
任务
编写一个程序,完成以下操作:
- 从标准输入读取可用砝码的重量;
- 选择两个满足任务条件的互不相交的砝码子集;
- 将结果写入标准输出。
输入格式
标准输入的第一行包含一个整数 $n$ ($2 \le n \le 1\,000$),表示可用砝码的数量。接下来的 $n$ 行中,每行包含一个正整数,表示一个砝码的重量。你可以假设所有砝码的总重量不超过 $50\,000$。
输出格式
标准输出的第一行应包含两个非负整数 $p$ 和 $q$,中间用一个空格隔开,分别表示第一个集合和第二个集合中砝码的数量。第二行应包含 $p$ 个整数,中间用空格隔开,表示第一个集合中砝码的重量。第三行应包含 $q$ 个整数,中间用空格隔开,表示第二个集合中砝码的重量。
样例
输入 1
4 1 1 2 7
输出 1
2 1 1 1 2