AT_agc001_d [AGC001D] Arrays and Palindrome

题目描述

高桥くん的母亲在高桥生日的时候送了他 $a, b$ 两个数列。因为 $a, b$ 满足了如下的所有性质, 所以他非常高兴: * $a$ 数列的数字总和是 $N$; * $b$ 数列的数字总和是 $N$; * $a, b$ 中包含的数都是正整数; * 满足以下两个条件的数列, 所有元素必定是相同的。 * 最开始的 $a_1$ 个元素, 接下来的 $a_2$ 个元素,更后面的 $a_3$ 个,等等,都是回文; * 最开始的 $b_1$ 个元素, 接下来的 $b_2$ 个元素,更后面的 $b_3$ 个,等等,都是回文。 但是有一天,高桥把把数列 $a$ 和 $b$ 都弄丢了, 幸运的是,他知道数列 $a$ 是另一个长度为 $M$ 的序列 $A$ 的排列。 为了让他再一次高兴起来, 他妈妈决定给他另一对数列使其满足如上性质。

输入格式

> >第一行两个整数 $N, M$。 > >之后一行,第 $i$ 个整数是 $A_i$。 >

输出格式

> >如果存在解, 输出三行,第一行数列 $a$,第二行 $b$ 的长度,第三行数列 $b$。 > >否则输出 `Impossible`(大小写敏感!)。 感谢 @ToBiChi 提供翻译。

说明/提示

- $1≤N≤10^5$; - $1≤M≤100$; - $1≤A_i≤10^5$。 数据保证 $A_i$ 的和是 $N$。