Gửi bài giải

Điểm: 1,33 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, 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

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.