import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num1 = scanner.nextInt();
//        int num2 = scanner.nextInt();
        int[] a = new int[num1];
        double s = 0,avg,x = 0;
        for (int i = 0; i < num1; i++) {
            a[i] = scanner.nextInt();
        }
        int max1 = 0;
        int max2 = 1;
        for (int i = 0; i < num1; i++) {
            if(a[i] % 2 == 0){
                if(max1 < a[i])max1 = a[i];
            }else if(max2 < a[i])max2 = a[i];
        }
        paiXu(a);
        System.out.println(max2 + " " + max1);
        for (int i = 0; i < num1; i++) {
            System.out.print(a[i] + " ");
        }
    }

    public static boolean judge(int i,int j){
        int a,s = 0;
        while(i != 0){
            a = i % 10;
            s = s + a;
            i /= 10;
        }
        if(s == j)return true;
        else return false;
    }

    public static void paiXu(int[] a){
        int temp;
        for(int i = 0;i < a.length - 1;i++){
            for(int k = 0;k < a.length - i - 1;k++){
                if(a[k] > a[k + 1]){
                    temp = a[k];
                    a[k] = a[k + 1];
                    a[k + 1] = temp;
                }
            }
        }
    }

    public static int MAX(int[] a){
        int max = a[0];
        for (int i = 0; i < a.length; i++) {
            if(max < a[i]){
                max = a[i];
            }
        }
        return max;
    }

    public static int MIN(int[] a){
        int min = a[0];
        for (int i = 0; i < a.length; i++) {
            if(min > a[i]){
               min = a[i];
            }
        }
        return min;
    }
}

/**************************************************************
	Problem: 1723
	User: admin
	Language: Java
	Result: Accepted
	Time:3648 ms
	Memory:46912 kb
****************************************************************/