Submit solution

Points: 1.33 (partial)
Time limit: 1.0s
Memory limit: 512M
Input: stdin
Output: stdout

Problem type
Allowed languages
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Cho đồ thị ~G~ có hướng ~N~ đỉnh ~M~ cạnh.

Một đỉnh ~X~ được gọi là "truy cập" được ~Y~ nếu có đường đi từ ~X~ đến ~Y~.

Đỉnh ~X~ được gọi là "phổ biến" nếu tất cả các đỉnh ~Y~ trong đồ thị thỏa mãn ~1~ trong ~2~ điều kiện:

  1. ~X~ truy cập được ~Y~.
  2. ~Y~ truy cập được ~X~.

Yêu cầu: Cho đồ thị ~G~, đếm số lượng đỉnh phổ biến.

Input

  • Dòng đầu gồm ~2~ số ~N~, ~M~ ~(1 \leq N \leq 150000~; ~1 \leq M \leq 300000)~.
  • ~M~ dòng tiếp theo, mỗi dòng chứa ~2~ số ~x~ và ~y~, thể hiện có cạnh nối từ ~x~ đến ~y~.

Output

  • Dòng đầu in số lượng đỉnh phổ biến.
  • Dòng tiếp theo in chỉ số của các đỉnh phổ biến theo thứ tự tăng dần.

Sample Input

5 4
1 2
3 2
2 4
4 5

Sample Output

3
2 4 5

Comments

Please read the guidelines before commenting.


There are no comments at the moment.