#include<bits/stdc++.h>
using namespace std;

int main(){
  int n;
  cin>>n;
  int nn=2*n*n-2*n;
  vector<int> g[10001];
  for(int i=0;i<nn;i++){
    int a,b;
    cin>>a>>b;
    g[a].push_back(b);
    g[b].push_back(a);
  }
  int k;
  for(int i=1;i<=n*n;i++){
    if(g[i].size()==2){
      k=i;
    }
  }
  
  int ma[111][111]={};
  int un[10010]={};
  ma[0][0]=k;
  un[k]=1;
  for(int i=0;i<n;i++){
    
    if(i){
      int tmp=ma[i-1][0];
      for(int j=0;j<g[tmp].size();j++){
	if(un[g[tmp][j]])continue;
	ma[i][0]=g[tmp][j];
	un[g[tmp][j]]=1;
	break;
      }
    }
    
    for(int j=1;j<n;j++){

      int ry=ma[i][j-1];
      if(i==0){
	for(int y=0;y<g[ry].size();y++){
	  if(un[g[ry][y]])continue;
	  if(g[g[ry][y]].size()>3)continue;
	  ma[i][j]=g[ry][y];
	  un[g[ry][y]]=1;
	  break;
	}
	continue;
      }
      int rx=ma[i-1][j];
      for(int x=0;x<g[rx].size();x++){
	for(int y=0;y<g[ry].size();y++){
	  if(un[g[rx][x]]||un[g[ry][y]])continue;
	  if(g[rx][x]!=g[ry][y])continue;
	  ma[i][j]=g[rx][x];
	  un[g[rx][x]]=1;
	}
      }   
    }
  }
  for(int i=0;i<n;i++){
    for(int j=0;j<n;j++){
      if(j)cout<<" ";
      cout<<ma[i][j];
    }
    cout<<endl;
  }
  return 0;
}

