#include <stdio.h>

void func(int a[][21],int i,int N){
	int max=i;//默认第i列上,从第i行开始,第i行i列的数最大 
	for(int j=i+1;j<N;j++){//j从i+1行开始遍历 
		if(a[max][i]<a[j][i])max=j;
	}
	for(int j=0;j<N;j++){
		int temp=a[max][j];
		a[max][j]=a[i][j];
		a[i][j]=temp;
	}
}
int main(){
int a[21][21];
int N;
while(scanf("%d",&N)!=EOF){
	for(int i=0;i<N;i++)
		for(int j=0;j<N;j++)
			scanf("%d",&a[i][j]);
	for(int i=0;i<N-1;i++){
		func(a,i,N);
	}
	for(int i=0;i<N;i++)
		for(int j=0;j<N;j++){
			printf("%d ",a[i][j]);
			if(j==N-1)printf("\n");
		}
}
	return 0;
}