/*
TASK:marriage
LANG:C++
*/
#include <iostream>
using namespace std;
int n,m[101][101],f[101][101],ma[101],fe[101];
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
            ma[i]=fe[i]=i;
            for(int j=1;j<=n;j++)
                    cin>>m[i][j];
    }
    for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                    cin>>f[i][j];
    
  for(int bla=1;bla<=n;bla++)  
    for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
            {
                    if(i==j) continue;
                    if((m[ma[i]][fe[i]]> m[ma[i]][fe[j]] || f[fe[j]][ma[j]]>f[fe[j]][ma[i]]) &&
                       (m[ma[j]][fe[j]] > m[ma[j]][fe[i]] || f[fe[i]][ma[i]]>f[fe[i]][ma[j]])  );
                    else
                    {
                        int tmp=fe[i];
                        fe[i]=fe[j];
                        fe[j]=tmp;
                    }
            }
            
            bool flag=1;
    for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)        
            {
                    if(i==j) continue;
                    if((m[ma[i]][fe[i]]> m[ma[i]][fe[j]] || f[fe[j]][ma[j]]>f[fe[j]][ma[i]]) &&
                       (m[ma[j]][fe[j]] > m[ma[j]][fe[i]] || f[fe[i]][ma[i]]>f[fe[i]][ma[j]])  );
                    else {
                         flag=0;
                         break;
                         }
            }
    if(!flag)
    {
             cout<<0<<endl;
             return 0;
    }
    
    for(int i=1;i<=n;i++)
            cout<<ma[i]<<" "<<fe[i]<<endl;
            
//    system("PAUSE");
    return 0;
}             
    
