#include <bits/stdc++.h>
using namespace std;
#define INF 2147483647
inline int read(){ int x=0,f=1;
char c=getchar();
while (c<'0' || c>'9'){ if (c=='-') f=-1;
c=getchar();
}
while (c>='0' && c<='9'){ x=x*10+c-48;
c=getchar();
}
return x*f;
}
#define N 5555
queue <int> boy[N];
int girl[N][N];
queue <int> active,wait;
int love[N];
int main(){ int n=read();
for (int i=1;i<=n;++i){ for (int j=1;j<=n;++j){ boy[i].push(read());
}
active.push(i);
}
for (int i=1;i<=n;++i){ for (int j=1;j<=n;++j){ girl[i][read()]=j;
}
love[i]=INF;
}
int ok=0;
int tm=0;
while (true){ tm++;
printf("-----------------第%d天-----------------\n",tm); while (!active.empty()){ int now=active.front();
active.pop();
int to=boy[now].front();
boy[now].pop();
printf("Boy %d 向 Girl %d 表白\n",now,to); if (love[to]==INF){ printf("Girl %d 没有拒绝 Boy %d 的表白\n",to,now); ok++;
love[to]=now;
if (ok==n){ puts("\n匹配结果:"); for (int i=1;i<=n;++i){ printf("Girl %d -> Boy %d\n",i,love[i]); }
return 0;
}
}else{ if (girl[to][love[to]]>girl[to][now]){ printf("Girl %d 没有拒绝 Boy %d 的表白\n",to,now); printf("Girl %d 拒绝了 Boy %d 的表白\n",to,love[to]); wait.push(love[to]);
love[to]=now;
}else{ printf("Girl %d 拒绝了 Boy %d 的表白\n",to,now); wait.push(now);
}
}
}
while (!wait.empty()){ active.push(wait.front());
wait.pop();
}
}
return 0;
}