#include <stdio.h>
#include <string.h>
int isvisited[51],mat[51][51],cnt,n;
void dfs(int start){
	if (cnt>=n)
	{
		return ;
	}
	cnt++;
	isvisited[start]=1;
	printf("%d ",start);
	for (int i=0;i<n;i++)
	{
		if (!isvisited[i]&&mat[start][i]==1)
		{
			dfs(i);
		}
	}
}
int main(){
	int i,j;
//	freopen("1.txt","r",stdin);
	while (scanf("%d",&n)==1)
	{
		for (i=0;i<n;i++)
		{
			for (j=0;j<n;j++)
			{
				scanf("%d",&mat[i][j]);
			}
		}
		cnt=0;
		memset(isvisited,0,sizeof(isvisited));
		for (i=0;i<n;i++)
		{
			if (!isvisited[i])
			{
				dfs(i);
			}
		}
		printf("\n");
	}
//	fclose(stdin);
	return 0;
}
/**************************************************************
	Problem: 2159
	User: admin
	Language: C
	Result: Accepted
	Time:10 ms
	Memory:1156 kb
****************************************************************/