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

void dfs(int d,int mx)
{
	int i,j,t;
	if(mx>m)return;
	if(d==N-1)
	{
		if(mx!=m)return;
		memset(c,0,sizeof(c));
		for(i=0;i<N-2;i++)
		{
			t=r[i];
			for(j=i+1;j<N-1;j++)
			{
				t+=r[j];
				if(D[t]-u[t]-c[t]<=0)return;
				c[t]++;
			}
		}
		for(j=0;j<N-1;j++)
		{
			printf("%d%c",r[j],j==N-2?'\n':' ');
		}
		return;
	}
	for(i=1;i<=400;i++)
	{
		if(D[i]-u[i]>0)
		{
			r[d]=i;
			u[i]++;
			dfs(d+1,mx+i);
			u[i]--;
		}
	}
}

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