import sys
def dfs(u):
i = d[u]
total = len(G[u])
while i < total:
d[u] = i+1
dfs(G[u][i])
i = d[u]
rec.append(u)
n, m = map(int, input().split())
du = [[0]*2 for _ in range(n+5)]
G = [[] for _ in range(n+5)]
d = [0 for _ in range(n+5)]
rec = []
for i in range(m):
u, v = map(int, input().split())
G[u].append(v)
du[u][1] += 1
du[v][0] += 1
for i in range(1, n+1):
G[i].sort()
S = 1
cnt = [0, 0]
flag = False
for i in range(1, n+1):
if du[i][1] != du[i][0]:
flag = True
if du[i][1] - du[i][0] == 1:
S = i
cnt[1] += 1
elif du[i][0] - du[i][1] == 1:
cnt[0] += 1
else:
print("No")
sys.exit(0)
if flag and not (cnt[0] == cnt[1] and cnt[0] == 1):
print("No")
sys.exit(0)
dfs(S)
for i in range(len(rec)-1, -1, -1):
print(rec[i], end=' ')