#include<stdio.h>
#include<string.h>
int N,D[10000],u[10000],r[21],dp[21],i,j,m,s;




void dfs(int d)
{
	int i,j,f=1;
	if(d==N-1)
	{
		for(i=0;i<d;i++)
			printf("%d%s",r[i],i==d-1?"\n":" ");
		return;
	}
	for(i=s;i<=m;i++)
	{
		f=1;
		if(dp[0]+i>m)break;
		if(D[i]-u[i]>0)
		{
			r[d]=i;
			for(j=0;j<=d;j++)
			{
				dp[j]+=i;
				if(D[dp[j]]-u[dp[j]]<=0)
					f=0;
				u[dp[j]]++;
			}
			if(f)
				dfs(d+1);
			for(j=0;j<=d;j++)
			{
				u[dp[j]]--;
				dp[j]-=i;
			}
		}
	}
	return;
}

int main()
{
	for(;scanf("%d",&N),N;puts("-----"))
	{
		memset(D,0,sizeof(D));
		memset(u,0,sizeof(u));
		for(i=m=0,s=4000;i<N*(N-1)/2;i++)
		{
			scanf("%d",&j);
			D[j]++;
			m=m<j?j:m;
			s=s>j?j:s;
		}
		dfs(0);
	}
	return 0;
}