#include<bits/stdc++.h>
using namespace std;
int ecnt,go[100005],adj[200010],nxt[200010],deg[100005],n,m;
void add(int u,int v){
go[++ecnt]=v;
nxt[ecnt]=adj[u];
adj[u] = ecnt;
deg[v]++;
}
void tuopu(){
queue<int>que;
for(int i = 1;i<=n;i++)
if(deg[i]==0){
printf("%d ",i);
que.push(i);
break;
}
while(!que.empty()){
int u = que.front();
que.pop();
for(int i = adj[u];i;i=nxt[i]){
deg[go[i]]--;
if(deg[go[i]]==0){
printf("%d ",go[i]);
que.push(go[i]);
}
}
}
return;
}
int main(){
scanf("%d%d",&n,&m);
for(int i = 1;i<=n;i++){
int tar;
while(scanf("%d",&tar)!=EOF&&tar!=0){
add(i,tar);
}
}
tuopu();
return 0;
}