#include <bits/stdc++.h>
#define MOD 1000000007LL
using namespace std;
typedef long long ll;
typedef pair<int,int> P;

int n;
int d[401];

int x[31];
int cnt[21][401];
vector<vector<int> > vec;
set<vector<int> > se;

void dfs(int dep,int l,int r){
	//printf("q %d %d\n",l,r);
	vector<int> xv;
	for(int i=0;i<n;i++){
		xv.push_back(x[i]);
		//printf("%d ",x[i]);
	}
	//printf("\n");
	if(se.find(xv)==se.end()){
		se.insert(xv);
	}else{
		return;
	}
	if(l==r){
		vector<int> vv;
		for(int i=0;i+1<n;i++){
			if(x[i]<x[i+1]){
				vv.push_back(x[i+1]-x[i]);
			}else{
				return;
			}
		}
		vec.push_back(vv);
		return;
	}
	int maxv=0;
	for(int i=400;i>=0;i--){
		if(cnt[dep][i]>0){
			maxv=i;
			break;
		}
	}
	x[l]=d[0]-maxv;
	//printf("%d %d\n",l,d[0]-maxv);
	if(x[l]>x[l-1] && x[l]<x[r]){
		for(int i=0;i<=400;i++){
			cnt[dep+1][i]=cnt[dep][i];
		}
		bool flag=true;
		for(int i=0;i<l;i++){
			cnt[dep+1][x[l]-x[i]]--;
			if(cnt[dep+1][x[l]-x[i]]<0)flag=false;
		}
		for(int i=r;i<n;i++){
			cnt[dep+1][x[i]-x[l]]--;
			if(cnt[dep+1][x[i]-x[l]]<0)flag=false;
		}
		if(flag){
			dfs(dep+1,l+1,r);
		}
	}
	x[l]=0;
	x[r-1]=maxv;
	if(x[r-1]<x[r] && x[r-1]>x[l-1]){
		for(int i=0;i<=400;i++){
			cnt[dep+1][i]=cnt[dep][i];
		}
		bool flag=true;
		for(int i=0;i<l;i++){
			cnt[dep+1][x[r-1]-x[i]]--;
			if(cnt[dep+1][x[r-1]-x[i]]<0){
				flag=false;
				//printf("error %d\n",i);
			}
		}
		for(int i=r;i<n;i++){
			cnt[dep+1][x[i]-x[r-1]]--;
			if(cnt[dep+1][x[i]-x[r-1]]<0){
				flag=false;
				//printf("error %d\n",i);
			}
		}
		if(flag){
			dfs(dep+1,l,r-1);
		}
	}
	x[r-1]=0;
}

void solve(){
	vec.clear();
	se.clear();
	memset(x,0,sizeof(x));
	memset(cnt,0,sizeof(cnt));
	for(int i=1;i<n*(n-1)/2;i++){
		cnt[0][d[i]]++;
	}
	x[0]=0;
	x[n-1]=d[0];
	dfs(0,1,n-1);
	sort(vec.begin(),vec.end());
	for(int i=0;i<vec.size();i++){
		for(int j=0;j<vec[i].size();j++){
			printf("%d%c",vec[i][j],j+1==vec[i].size()?'\n':' ');
		}
	}
	printf("-----\n");
}

int main(void){
	while(1){
		scanf("%d",&n);
		if(n==0)break;
		for(int i=0;i<n*(n-1)/2;i++){
			scanf("%d",&d[i]);
		}
		solve();
	}
	
	return 0;
}
