#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int n,m;
vector<int>G[1<<17];
vector<int>s;
bool used[1<<17];
void dfs(int u)
{
	used[u]=1;
	for(int v:G[u])if(!used[v])dfs(v);
	s.push_back(u);
}
int cnt[1<<17];
int p[1<<17];
int main()
{
	cin>>n>>m;
	for(int i=1;i<n+m;i++)
	{
		int u,v;cin>>u>>v;
		G[u].push_back(v);
		cnt[v]++;
	}
	int id=-1;
	for(int i=1;i<=n;i++)if(cnt[i]==0)
	{
		id=i;
		break;
	}
	dfs(id);
	reverse(s.begin(),s.end());
	for(int a:s)
	{
		for(int u:G[a])p[u]=a;
	}
	for(int i=1;i<=n;i++)cout<<p[i]<<endl;
}
