#include<bits/stdc++.h>
using namespace std;
int m,n;
void dfs1(vector<int>*g,int u,stack<int>&s,vector<int>&vis)
{
vis[u]=1;
for(int x:g[u])
{
if(vis[x]==1) continue;
dfs1(g,x,s,vis);
}
vis[u]=2;
s.push(u);
}
void dfs2(vector<int>*g,int u,vector<int>&vis,vector<int>&scc)
{
vis[u]=1;
scc.push_back(u);
for(int x:g[u])
{
if(vis[x]==1) continue;
dfs2(g,x,vis,scc);
}
vis[u]=2;
}
int main()
{
cin>>n>>m;
vector<int>g1[n+1],g2[n+1];
for(int i=0;i<m;i++)
{
int u,v;
cin>>u>>v;
g1[u].push_back(v);
g2[v].push_back(u);
}
stack<int>s;
vector<int>vis(n+1,0);
for(int i=1;i<=n;i++)
{
if(vis[i]==0)
{
dfs1(g1,i,s,vis);
}
}
vector<int>vis2(n+1,0);
vector<vector<int>>allscc;
while(!s.empty())
{
int cur=s.top();
s.pop();
if(vis2[cur]==0)
{
vector<int>scc;
dfs2(g2,cur,vis2,scc);
allscc.push_back(scc);
}
}
for(auto x: allscc)
{
for(int u:x)
{
cout<<u<< " ";
}
cout<<endl;
}
}
/*
8 14
1 2
2 3
3 1
3 4
2 4
2 5
4 6
6 4
5 7
7 5
5 6
6 8
7 8
8 8
*/
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtLG47Cgp2b2lkIGRmczEodmVjdG9yPGludD4qZyxpbnQgdSxzdGFjazxpbnQ+JnMsdmVjdG9yPGludD4mdmlzKQp7CgogICAgdmlzW3VdPTE7CiAgICBmb3IoaW50IHg6Z1t1XSkKICAgIHsKICAgICAgICBpZih2aXNbeF09PTEpIGNvbnRpbnVlOwogICAgICAgIGRmczEoZyx4LHMsdmlzKTsKICAgIH0KICAgIHZpc1t1XT0yOwogICAgcy5wdXNoKHUpOwp9Cgp2b2lkIGRmczIodmVjdG9yPGludD4qZyxpbnQgdSx2ZWN0b3I8aW50PiZ2aXMsdmVjdG9yPGludD4mc2NjKQp7CgogICAgdmlzW3VdPTE7CiAgICBzY2MucHVzaF9iYWNrKHUpOwogICAgZm9yKGludCB4OmdbdV0pCiAgICB7CiAgICAgICAgaWYodmlzW3hdPT0xKSBjb250aW51ZTsKICAgICAgICBkZnMyKGcseCx2aXMsc2NjKTsKICAgIH0KICAgIHZpc1t1XT0yOwoKfQoKaW50IG1haW4oKQp7CiAgICBjaW4+Pm4+Pm07CiAgICB2ZWN0b3I8aW50PmcxW24rMV0sZzJbbisxXTsKCiAgICAgZm9yKGludCBpPTA7aTxtO2krKykKICAgIHsKICAgICAgICBpbnQgdSx2OwogICAgICAgIGNpbj4+dT4+djsKCiAgICAgICAgZzFbdV0ucHVzaF9iYWNrKHYpOwogICAgICAgIGcyW3ZdLnB1c2hfYmFjayh1KTsKICAgIH0KCiAgICBzdGFjazxpbnQ+czsKICAgIHZlY3RvcjxpbnQ+dmlzKG4rMSwwKTsKICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKQogICAgewogICAgICAgIGlmKHZpc1tpXT09MCkKICAgICAgICB7CiAgICAgICAgICAgIGRmczEoZzEsaSxzLHZpcyk7CiAgICAgICAgfQogICAgfQogICAgdmVjdG9yPGludD52aXMyKG4rMSwwKTsKICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj5hbGxzY2M7CiAgICB3aGlsZSghcy5lbXB0eSgpKQoKICAgIHsKICAgICAgICBpbnQgY3VyPXMudG9wKCk7CiAgICAgICAgcy5wb3AoKTsKICAgICAgICBpZih2aXMyW2N1cl09PTApCiAgICAgICAgewogICAgICAgICAgICB2ZWN0b3I8aW50PnNjYzsKICAgICAgICAgICAgZGZzMihnMixjdXIsdmlzMixzY2MpOwogICAgICAgICAgICBhbGxzY2MucHVzaF9iYWNrKHNjYyk7CiAgICAgICAgfQogICAgfQogICAgZm9yKGF1dG8geDogYWxsc2NjKQogICAgewogICAgICAgIGZvcihpbnQgdTp4KQogICAgICAgIHsKICAgICAgICAgICAgY291dDw8dTw8ICIgIjsKICAgICAgICB9CiAgICAgICAgY291dDw8ZW5kbDsKICAgIH0KCn0KLyoKCjggMTQKMSAyCjIgMwozIDEKMyA0CjIgNAoyIDUKNCA2CjYgNAo1IDcKNyA1CjUgNgo2IDgKNyA4CjggOAoqLwo=