#include <iostream>
#include <vector>

using namespace std;

int main(){
	int N, M;
	while(cin >> N >> M){
		vector<int> even, odd;
		for(int i=0;i<M;i++){
			int t;
			cin >> t;
			if(t%2 == 0) even.push_back(t);
			else odd.push_back(t);
		}
		if(odd.size() > 2){
			cout << "Impossible" << endl;
			continue;
		}
		vector<int> A;
		if(odd.size() >= 1) A.push_back(odd[0]);
		for(int i=0;i<even.size();i++) A.push_back(even[i]);
		if(odd.size() == 2) A.push_back(odd[1]);
		vector<int> B;
		if(A.size() == 1){
			B.push_back(1);
			if(A[0] >= 2) B.push_back(A[0]-1);
		} else {
			if(A[0] >= 2) B.push_back(A[0]-1);
			for(int i=1;i<A.size()-1;i++){
				B.push_back(A[i]);
			}
			B.push_back(A.back()+1);
		}
		cout << A[0];
		for(int i=1;i<A.size();++i) cout << " " << A[i];
		cout << endl;
		cout << B.size() << endl;
		cout << B[0];
		for(int i=1;i<B.size();++i) cout << " " << B[i];
		cout << endl;
	}
}
