#ATagc001d. [AGC001D] Arrays and Palindrome

[AGC001D] Arrays and Palindrome

题目描述

给你一个长度为 MM 的序列 AA,和一个整数 NN,你需要构造序列 aabb,保证 AAaa 的重排列。

  • aabb 数列的数字总和都是 NN
  • aabb 中的数都是正整数;
  • 对于满足以下两个条件的数列,所有元素必定是相同的。
    • 最开始的 a1a_1 个元素, 接下来的 a2a_2 个元素,更后面的 a3a_3 个,等等,都是回文;
    • 最开始的 b1b_1 个元素, 接下来的 b2b_2 个元素,更后面的 b3b_3 个,等等,都是回文。

输入格式

第一行两个整数 N,MN, M

之后一行,第 ii 个整数是 AiA_i

输出格式

如果存在解, 输出三行,第一行数列 aa,第二行 bb 的长度,第三行数列 bb

否则输出 Impossible(大小写敏感!)。

感谢 @ToBiChi 提供翻译。

样例 1

输入

3 2
2 1

输出

1 2
1
3

样例 2

输入

6 1
6

输出

6
3
1 2 3

样例 3

输入

55 10
1 2 3 4 5 6 7 8 9 10

输出

Impossible

说明/提示

  • 1N1051≤N≤10^5
  • 1M1001≤M≤100
  • 1Ai1051≤A_i≤10^5

数据保证 AiA_i 的和是 NN