#include<iostream>
#include<set>
using namespace std;

int main() {
	multiset<int>a;
	int N;
	cin >> N;
	while(N--) {
		int qq;
		cin >> qq;
		a.insert(qq);
	}
	int max_val = *a.rbegin(); 
	cout << max_val << endl;
	a.erase(--a.end());  // 先把尾后迭代器向前移一位,指向真正的最后一个元素,再删除
	if (a.empty()) {
		cout << "-1";
	}
	else {
		for (auto q : a) {
			cout << q << " ";
		}
	}
}