#include<bits/stdc++.h>
using namespace std;
int head[1000000],k;
struct edge
{
int u,v;
};
vector <edge> s;
vector <int> e[100001];
bool vis[100001]={0};
int dfs(int x)
{
k=max(k,x);
vis[x]=1;
for(int i=0;i<e[x].size();i++)
{
int p=s[e[x][i]].v;
if(vis[p]) continue;
else dfs(p);
}
}
int main()
{
int n,m;
scanf("%d%d", &n, &m);
for(int i=0;i<m;i++)
{
int xx,yy;
scanf("%d%d", &xx, &yy);
s.push_back((edge){xx,yy});
}
for(int i=0;i<m;i++)
e[s[i].u].push_back(i);
for(int i=1;i<=n;i++,k=i)
{
dfs(i);
printf("%d ", k);
memset(vis,0,sizeof(vis));
}
}
TLE了两个点,QWQ