#include<stdio.h>
#include<iostream>
#include<vector>
#include<stack>
#include<set>
#include<algorithm>
using namespace std;
#define gc getchar_unlocked
int read_int() {
char c = gc();
while(c<'0' || c>'9') c = gc();
int ret = 0;
while(c>='0' && c<='9') {
ret = 10 * ret + c - 48;
c = gc();
}
return ret;
}
int visited[5001];
vector<int> myvector[5001];
stack<int> mystack;
int graph[5001];
int ans[5001];
int disc[5001];
int low[5001];
int tim,id;
void connected(int u)
{
disc[u]=low[u]=++tim;
visited[u]=1;
mystack.push(u);
vector<int>::iterator it;
int v;
for(it=myvector[u].begin();it!=myvector[u].end();it++)
{
v=*it;
if(visited[v]==0)
{
connected(v);
low[u]=min(low[u],low[v]);
}
else
{
low[u]=min(disc[v],low[u]);
}
}
if(disc[u]==low[u])
{
id++;
int i;
while(mystack.top()!=u)
{
i=mystack.top();
mystack.pop();
graph[i]=id;
}
i=mystack.top();
mystack.pop();
graph[i]=id;
}
}
int main()
{
int n,m,i,l,r;
vector<int>::iterator it;
while(1)
{
n=read_int();
if(n==0)
return 0;
m=read_int();
for(i=1;i<=m;i++)
{
l=read_int();
r=read_int();
myvector[l].push_back(r);
}
tim=0,id=0;
for(i=1;i<=n;i++)
{
if(visited[i]==0)
connected(i);
}
for(i=1;i<=n;i++)
{
for(it=myvector[i].begin();it!=myvector[i].end();it++)
{
if(graph[i]!=graph[*it])
{
ans[graph[i]]=1;
break;
}
}
}
for(i=1;i<=n;i++)
{
if(ans[graph[i]]==0)
printf("%d ",i);
myvector[i].clear();
visited[i]=0;
graph[i]=0;
disc[i]=0;
low[i]=0;
}
for(i=1;i<=n;i++)
ans[i]=0;
printf("\n");
}
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGU8c3RhY2s+CiNpbmNsdWRlPHNldD4KI2luY2x1ZGU8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIGdjIGdldGNoYXJfdW5sb2NrZWQKaW50IHJlYWRfaW50KCkgewogIGNoYXIgYyA9IGdjKCk7CiAgd2hpbGUoYzwnMCcgfHwgYz4nOScpIGMgPSBnYygpOwogIGludCByZXQgPSAwOwogIHdoaWxlKGM+PScwJyAmJiBjPD0nOScpIHsKICAgIHJldCA9IDEwICogcmV0ICsgYyAtIDQ4OwogICAgYyA9IGdjKCk7CiAgfQogIHJldHVybiByZXQ7Cn0KaW50IHZpc2l0ZWRbNTAwMV07CnZlY3RvcjxpbnQ+IG15dmVjdG9yWzUwMDFdOwpzdGFjazxpbnQ+IG15c3RhY2s7CmludCBncmFwaFs1MDAxXTsKaW50IGFuc1s1MDAxXTsKaW50IGRpc2NbNTAwMV07CmludCBsb3dbNTAwMV07CmludCB0aW0saWQ7CnZvaWQgY29ubmVjdGVkKGludCB1KQp7CgogICAgZGlzY1t1XT1sb3dbdV09Kyt0aW07CiAgICB2aXNpdGVkW3VdPTE7CiAgICBteXN0YWNrLnB1c2godSk7CiAgICB2ZWN0b3I8aW50Pjo6aXRlcmF0b3IgaXQ7CiAgICBpbnQgdjsKICAgIGZvcihpdD1teXZlY3Rvclt1XS5iZWdpbigpO2l0IT1teXZlY3Rvclt1XS5lbmQoKTtpdCsrKQogICAgewogICAgICAgIHY9Kml0OwogICAgICAgIGlmKHZpc2l0ZWRbdl09PTApCiAgICAgICAgewogICAgICAgIGNvbm5lY3RlZCh2KTsKICAgICAgICBsb3dbdV09bWluKGxvd1t1XSxsb3dbdl0pOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBsb3dbdV09bWluKGRpc2Nbdl0sbG93W3VdKTsKICAgICAgICB9CiAgICB9CgogICAgaWYoZGlzY1t1XT09bG93W3VdKQogICAgewogICAgICAgIGlkKys7CiAgICAgICAgaW50IGk7CiAgICAgICAgd2hpbGUobXlzdGFjay50b3AoKSE9dSkKICAgICAgICB7CiAgICAgICAgICAgIGk9bXlzdGFjay50b3AoKTsKICAgICAgICAgICAgbXlzdGFjay5wb3AoKTsKICAgICAgICAgICAgZ3JhcGhbaV09aWQ7CiAgICAgICAgfQogICAgICAgICBpPW15c3RhY2sudG9wKCk7CiAgICAgICAgICAgIG15c3RhY2sucG9wKCk7CiAgICAgICAgICAgIGdyYXBoW2ldPWlkOwogICAgfQp9CmludCBtYWluKCkKewogICAgaW50IG4sbSxpLGwscjsKICAgIHZlY3RvcjxpbnQ+OjppdGVyYXRvciBpdDsKICAgIHdoaWxlKDEpCiAgICB7CiAgICAgICAgbj1yZWFkX2ludCgpOwogICAgICAgIGlmKG49PTApCiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIG09cmVhZF9pbnQoKTsKICAgICAgICBmb3IoaT0xO2k8PW07aSsrKQogICAgICAgIHsKICAgICAgICAgICAgbD1yZWFkX2ludCgpOwogICAgICAgICAgICByPXJlYWRfaW50KCk7CiAgICAgICAgICAgIG15dmVjdG9yW2xdLnB1c2hfYmFjayhyKTsKICAgICAgICB9CiAgICAgICAgdGltPTAsaWQ9MDsKICAgICAgICBmb3IoaT0xO2k8PW47aSsrKQogICAgICAgIHsKICAgICAgICAgICAgaWYodmlzaXRlZFtpXT09MCkKICAgICAgICAgICAgICAgIGNvbm5lY3RlZChpKTsKICAgICAgICB9CiAgICAgICAgZm9yKGk9MTtpPD1uO2krKykKICAgICAgICB7CiAgICAgICAgICAgIGZvcihpdD1teXZlY3RvcltpXS5iZWdpbigpO2l0IT1teXZlY3RvcltpXS5lbmQoKTtpdCsrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZihncmFwaFtpXSE9Z3JhcGhbKml0XSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBhbnNbZ3JhcGhbaV1dPTE7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZm9yKGk9MTtpPD1uO2krKykKICAgICAgICB7CiAgICAgICBpZihhbnNbZ3JhcGhbaV1dPT0wKQogICAgICAgIHByaW50ZigiJWQgIixpKTsKICAgICAgICBteXZlY3RvcltpXS5jbGVhcigpOwogICAgICAgIHZpc2l0ZWRbaV09MDsKICAgICAgICBncmFwaFtpXT0wOwogICAgICAgIGRpc2NbaV09MDsKICAgICAgICBsb3dbaV09MDsKICAgICAgICB9CiAgICAgICAgZm9yKGk9MTtpPD1uO2krKykKICAgICAgICAgICAgYW5zW2ldPTA7CiAgICAgcHJpbnRmKCJcbiIpOwogICAgfQogICAgcmV0dXJuIDA7Cn0K