#include<bits/stdc++.h>
using namespace std;
vector<int> a[200005];
int x[200005],y[200005],ans[200005],tot=0,cnt[200005];
void dfs(int s)
{
for (int i=cnt[s];i<a[s].size();i=cnt[s])
{
cnt[s]=i+1;
dfs(a[s][i]);
}
ans[++tot]=s;
}
int main()
{
int n,m;
cin>>n>>m;
for (int i=1;i<=m;i++)
{
int _1,_2;
cin>>_1>>_2;
a[_1].push_back(_2);
x[_2]++;
y[_1]++;
}
for (int i=1;i<=n;i++)
{
sort(a[i].begin(),a[i].end());
}
bool c=0,r=0;
for (int i=1;i<=n;i++)
{
if (x[i]!=y[i])
{
if (abs(x[i]-y[i])>=2)
{
cout<<"No";
return 0;
}
else
{
if (y[i]>x[i])
{
if (c==0)
c=i;
else
{
cout<<"No";
return 0;
}
}
else
{
if (r==0)
r=i;
else
{
cout<<"No";
return 0;
}
}
}
}
}
if (c!=0||r!=0)
{
if (c==0||r==0)
{
cout<<"No";
return 0;
}
}
if (r==0)
{
r=1;
}
dfs(r);
for (int i=tot;i>=1;i--)
cout<<ans[i]<<" ";
return 0;
}
满意赏关