AtCoder Grand Contest 001

D - Arrays and Palindrome


Time limit時間制限 : 2sec / Memory limitメモリ制限 : 256MB

配点 : 1000

問題文

高橋君のお母さんは、高橋君の誕生日に数列 a, b をプレゼントしました。 数列 a, b は以下の性質をすべて満たしていたため、高橋君はとても喜びました。

  • 数列 a に含まれる数の総和は N である。
  • 数列 b に含まれる数の総和は N である。
  • 数列 a, b に含まれる数はすべて正の整数である。
  • 以下の条件を 2 つとも満たす長さ N の文字列は、必ずすべての文字が同じである。
    • 先頭の a_1 文字、続く a_2 文字、さらに続く a_3 文字 ... はすべて回文である。
    • 先頭の b_1 文字、続く b_2 文字、さらに続く b_3 文字 ... はすべて回文である。

しかしある日、高橋君は数列 a, b を両方ともなくしてしまいました。 幸運なことに、高橋君は数列 a が長さ M の数列 A の並び替えであったことを覚えています。

高橋君のお母さんは高橋君を喜ばせるために、数列 a, b として考えられるものを高橋君にもう一度プレゼントしようと考えました。

制約

  • 1≦N≦10^5
  • 1≦M≦100
  • 1≦A_i≦10^5
  • A_i の総和は N である。

入力

入力は以下の形式で標準入力から与えられる。

N M
A_1 A_2 ... A_M

出力

数列 a, b として考えられるものがある場合、数列 a、数列 b の長さ、数列 b を順に出力せよ。 ただし、高橋君の勘違いなどの理由で数列 a, b として考えられるものが存在しない場合がある。その場合は代わりに Impossible と出力せよ。


入力例 1

3 2
2 1

出力例 1

1 2
1
3

入力例 2

6 1
6

出力例 2

6
3
1 2 3

入力例 3

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

出力例 3

Impossible

Score : 1000 points

Problem Statement

Snuke got a present from his mother on his birthday. The present was a pair of two sequences a and b, consisting of positive integers. They satisfied all of the following properties:

  • The sum of all elements of a is N.
  • The sum of all elements of b is N.
  • Any string of length N that satisfies the following two conditions (1) and (2) will also satisfy the condition (3).
    • (1) Any of the following forms a palindrome: the first a_1 letters, the following a_2 letters, the following a_3 letters and so on.
    • (2) Any of the following forms a palindrome: the first b_1 letters, the following b_2 letters, the following b_3 letters and so on.
    • (3) All N letters are the same.

He was happy, until one day he lost both of the sequences. Now, he only remembers that the sequence a was a permutation of another sequence A of length M.

To bring him happiness again, his mother has decided to give him another pair of sequences a and b that satisfies his favorite properties and is consistent with his memory.

Constraints

  • 1≦N≦10^5
  • 1≦M≦100
  • 1≦A_i≦10^5
  • The sum of all A_i equals N.

Input

The input is given from Standard Input in the following format:

N M
A_1 A_2 ... A_M

Output

If there exists a pair of sequences a and b that satisfies the properties and is consistent with Snuke's memory, print three lines. The first line must contain the sequence a, the second line must contain the length of the sequence b, and the third line must contain the sequence b.

If such a pair does not exist (because Snuke's memory is wrong or some other reason), print a single line containing the word Impossible (case-sensitive).


Sample Input 1

3 2
2 1

Sample Output 1

1 2
1
3

Sample Input 2

6 1
6

Sample Output 2

6
3
1 2 3

Sample Input 3

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

Sample Output 3

Impossible

Submit提出する