#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;

const int MAX_NUM = 1000;

/**
 * 特殊排序--华中科技大学
 */
int main() {
    int n;
    while (cin >> n) {
        int num[MAX_NUM];
        for (int i = 0; i < n; ++i) {
            cin >> num[i];
        }

        if (n == 1) {
            //特殊情况,只有一个整数,那自己就是最大值
            cout << num[n - 1] << endl;
            cout << "-1" << endl;
            return 0;
        }

        //排序
        sort(num, num + n);
        //升序序列的最后面的值一定是最大值
        int max = num[n - 1];
        //输出最大值
        cout << max << endl;

        /*
         * num[n-1]是最大值,不必输出
         * 因此,循环到n-2即可
         */
        for (int j = 0; j < n - 1; ++j) {
            if (j != n - 2) {
                cout << num[j] << " ";
            } else {
                //最后一个不需要空格,但是需要换行
                cout << num[j] << endl;
            }
        }
    }

    return 0;
}