水獭乌苏太郎是一名报社记者,正在报道附近举行的一场大型马拉松比赛。
共有 N 名运动员参加比赛,编号从 1 到 N 。乌苏太郎在报道比赛时,在笔记中记录了如下信息:
乌苏太郎想在报纸上刊登一张排名表,表示比赛结束后运动员的排名:排名表是一个长度为 N 的序列 P,其中 P_j 代表排名为 j 的运动员的编号。
然而乌苏太郎并没有记录排名表,也没有记录每次排名变化时哪一方的排名上升(即不知道是 A_i 超过了 B_i 还是反之)。于是他想让你判断是否存在一个排名表,使得不与他记录的信息矛盾;如果存在,他想让你求出字典序最小的排名表。
称一个长度为 N 的排名表序列 a 在字典序上小于另一个长度为 N 的排名表序列 b,当且仅当存在一个 k(1\le k\le N) 满足如下条件:
第一行输入两个整数 N,M。
接下来 M 行,每行输入两个整数 A_i,B_i。
如果不存在满足条件的排名表,输出一行一个字符串 No
。
如果存在满足条件的排名表:
Yes
;5 5 1 2 4 5 3 4 3 5 1 4
Yes 2 4 1 5 3
3 4 1 3 2 3 1 3 2 3
No
8 3 1 8 3 5 4 7
Yes 1 8 2 3 5 4 7 6
假设比赛开始时,运动员排名为 1,2,3,5,4。
比赛过程如下:
最终的排名表 P={2,4,1,5,3}。可以证明这是字典序最小的。
JOIG