Time Limit: 2000MS

 

Memory Limit: 262144KB

 

64bit IO Format: %I64d & %I64u

CodeForces - 618B


Guess the Permutation



Submit Status




Description




Bob has a permutation of integers from 1 to n. Denote this permutation as p. The i-th element of p will be denoted as pi. For all pairs of distinct integers i, j between 1 and n, he wrote the number ai, j = min(pi, pj). He writes ai, i = 0 for all integeri from 1 to n.

Bob gave you all the values of ai, j






Input




The first line of the input will contain a single integer n (2 ≤ n ≤ 50).

The next n lines will contain the values of ai, j. The j-th number on the i-th line will represent ai, j. The i-th number on the i-th line will be 0. It's guaranteed that ai, j = aj, i






Output




Print n






Sample Input





Input



20 11 0





Output



2 1





Input



50 2 2 1 22 0 4 1 32 4 0 1 31 1 1 0 12 3 3 1 0





Output



2 5 4 1 3







Hint




In the first case, the answer can be {1, 2} or {2, 1}.

In the second case, another possible answer is {2, 4, 5, 1, 3}.

#include<cstdio>
#include<cstring>
#include<queue>
#include<algorithm>
using namespace std;
int num[60],map[60][60],vis[1010];
int main()
{
	int n;
	while(scanf("%d",&n)!=EOF)
	{
		memset(map,0,sizeof(map));
		for(int i=1;i<=n;i++)
		{
			num[i]=i;
			memset(vis,0,sizeof(vis));
			for(int j=1;j<=n;j++)
			{
				scanf("%d",&map[i][j]);
				vis[map[i][j]]++;
			}
			int a=0,k=0;
			for(int j=1;j<=n;j++)
			{
				if(vis[j]-1>a)
				{
					a=j;
				}
			}
			num[i]=a;
		}
		int f1=0,f2=0;
		for(int i=1;i<=n;i++)
		if(num[i]==0)
		{
			if(f1==0) num[i]=n-1,f1=i;
			else f2=i,num[i]=n;
		}
		for(int i=1;i<n;i++)
		{
			printf("%d ",num[i]);
		}
		printf("%d\n",num[n]);
	}
	return 0;
}