AT_agc001_d [AGC001D] Arrays and Palindrome

题目描述

给你一个长度为 $M$ 的序列 $A$,和一个整数 $N$,你需要构造序列 $a$,$b$,保证 $A$ 是 $a$ 的重排列。 * $a$,$b$ 数列的数字总和都是 $N$; * $a$,$b$ 中的数都是正整数; * 对于满足以下两个条件的数列,所有元素必定是相同的。 * 最开始的 $a_1$ 个元素, 接下来的 $a_2$ 个元素,更后面的 $a_3$ 个,等等,都是回文; * 最开始的 $b_1$ 个元素, 接下来的 $b_2$ 个元素,更后面的 $b_3$ 个,等等,都是回文。

输入格式

> >第一行两个整数 $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$。