#include<bits/stdc++.h>
#define vi vector<int>
#define pb push_back
using namespace std;
const int SIZE=1e5;
vector<int>v[SIZE];
queue<int>q;
int in[SIZE],n,N,M,a,b;
vi ans(SIZE,-1);
void kill(int now)
{
	for(int j=0;j<v[now].size();j++)
	{ 
		in[v[now][j]]--;
		if(in[v[now][j]]==0)
		{
			q.push(v[now][j]);
			ans[v[now][j]]=now;
		}
	}
}
void tuopu()
{
	while(!q.empty())
	{
		int x=q.front();
		q.pop();
		kill(x);
	}
}
int main()
{
	cin>>N>>M;
	n=N-1+M;
	for(int i=0;i<n;i++)
	{
		cin>>a>>b;
		a--,b--;
		in[b]++;
		v[a].pb(b); 
	}
	for(int i=0;i<N;i++)
	{
		if(in[i]==0)
		{
			q.push(i);
			break;
		}
	}
	tuopu();
	for(int i=0;i<N;i++)cout<<ans[i]+1<<' ';
}