#include<bits/stdc++.h>
using namespace std;
int n,m;
vector<int> d[10001];
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++){
d[i].push_back(i);//把每行的积木存储
}
for(int i=0;i<m;i++){
int a,b;
cin>>a>>b;
if(a==b){//如果成立,就跳出一次循环
continue;
}
for(int j=0;j<d[b].size();j++){//否则将积木放在那一行
d[a].push_back(d[b][j]);
}
vector<int>().swap(d[b]);
}
for(int i=1;i<=n;i++){
for(int j=0;j<d[i].size();j++){//输出每行积木
cout<<d[i][j]<<" ";
}
cout<<endl;//记得输出空行
}
return 0;
}
10-16