import java.util.*

fun main(args: Array<String>) {
    val (n, m) = readLine()!!.split(' ').map(String::toInt)
    val a = readLine()!!.split(' ').map(String::toInt)
    val odd = a.filter { it % 2 == 1 }
    val even = a.filter { it % 2 == 0 }
    if (odd.size > 2) println("Impossible") else {
        val aa = ArrayList<Int>()
        val bb = ArrayList<Int>()
        if (a.size == 1) {
            aa.add(a[0])
            if (a[0] == 1) {
                bb.add(1)
            } else {
                bb.add(a[0] - 1)
                bb.add(1)
            }
        } else {
            var bg = 0
            if (odd.size > 0) {
                aa.add(odd[0])
                bb.add(odd[0] + 1)
            } else {
                aa.add(even[0])
                bb.add(even[0] + 1)
                bg = 1
            }
            for (i in bg..even.size - 1) {
                aa.add(even[i])
                bb.add(even[i] - (if (i == even.size - 1 && odd.size < 2) 1 else 0))
            }
            if (odd.size == 2) {
                aa.add(odd[1])
                if (odd[1] > 1) bb.add(odd[1] - 1)
            }
            if (aa.size == 1) {
                bb.add(1)
            }
        }
        println(aa.joinToString(" ", transform = Int::toString))
        println(bb.size)
        println(bb.joinToString(" ", transform = Int::toString))
    }
}
