#include <bits/stdc++.h>
using namespace std;

int get(int k,int cnt=0)
{
	if(k!=1)
	{
		k/=2;
		return get(k,cnt+1);
	}
	else 
		return cnt;
}

int main()
{
	bool yes=true;
	int n; cin>>n;
	map <int,int> mp;
	for(int i=0; i<n; i++)
	{
		int x; cin>>x;
		mp[x]++;
	}
	int k=get(n+1);
	while(k--)
	{
		bool ok=false;
		vector <int> v;
		for(auto it: mp)
		{
			if(it.second>0)
			{
				it.second--;
				v.push_back(it.first);
			}
		}
		int cur=0;
		for(auto it: mp)
		{
			if(it.first>v[cur])
				cur++;
		}
		if(cur==v.size()-1)
			ok=true;
		if(ok==false)
		{
			yes=false;
			break;
		}	
	}
	if(yes==false)
		cout<<(-1);
	else
		for(auto it: m)
			cout<<it.first<<" ";
}
