#include <iostream>
#include <cstdio> 
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
const int N=100010;
int tt;
int head[N],to[N],nxt[N],in[N],v[N],fr[N];
inline int gi() {
    int x=0,o=1;
    char ch=getchar();
    while(ch<'0'||ch>'9') ch=='-'?o=-1:0,ch=getchar();
    while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();
    return x*o;
}
int main() {
    int n,m,tp=0;
    cin>>n>>m;
    for(int i=1;i<n+m;i++) {
	int x=gi(),y=gi();++in[y];
	to[++tt]=y,nxt[tt]=head[x],head[x]=tt;
    }
    for(int i=1;i<=n;i++)
	if(!in[i]) v[++tp]=i;
    while(tp) {
	int x=v[tp--];
	for(int i=head[x];i;i=nxt[i]) {
	    int y=to[i];
	    if(!--in[y]) fr[y]=x,v[++tp]=y;
	}
    }
    for(int i=1;i<=n;i++) printf("%d\n",fr[i]);
    return 0;
}