Xét \(\pi=(\pi_1, \pi_2, \pi_3,..., \pi_N)\) là hoán vị của các số tự nhiên từ \(1\) đến \(N\). Cho \(M\) ràng buộc, ràng buộc thứ \(i\) có dạng "\(\pi_{X_i}\) phải có giá trị nhỏ hơn \(\pi_{Y_i}\)". Bạn hãy lập trình xác định xem liệu có tồn tại một hoán vị \(\pi\) duy nhất thỏa mãn tất cả \(M\) ràng buộc trên không.
Input
Dòng đầu chứa hai số nguyên dương \(N\) và \(M\). (\(2\leq N\leq 2\cdot 10^5\), \(1\leq M\leq 2\cdot 10^5\))
Dòng thứ \(i\) trong \(M\) dòng tiếp theo chứa hai số nguyên \(X_i\) và \(Y_i\) (\(1\leq X_i, Y_i\leq N\)).
Output
Dòng đầu in ra Yes
nếu tồn tại duy nhất một hoán vị \(\pi\) thỏa mãn tất cả \(M\) ràng buộc đã cho. Ngược lại, nếu không tồn tại hoặc tồn tại nhiều hơn một hoán vị thỏa mãn, in ra No
.
Nếu tồn tại duy nhất một hoán vị thỏa mãn, dòng tiếp theo in ra \(N\) số nguyên thể hiện giá trị của từng phần tử trong hoán vị.
Ví dụ
Sample input 1
3 2
3 1
2 3
Sample output 1
Yes
3 1 2
Sample input 2
3 2
3 1
3 2
Sample output 2
No
Sample input 3
4 6
1 2
1 2
2 3
2 3
3 4
3 4
Sample output 3
Yes
1 2 3 4