TPCPPLAR - Popular

no tags 

Hiện tại, bài tập này đã có trên online judge chính thức của VNOI, bạn có thể truy cập ở đây: https://oj.vnoi.info/problem/tpcpplar


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 ≤ N ≤ 150000; 1 ≤ M ≤ 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.

Example

Input:
5 4
1 2
3 2
2 4
4 5

Output:
3
2 4 5


hide comments
Oleg: 2023-03-22 04:57:34

Clarification: "fulfil one of two conditions" should be read as " fulfil at least one of two conditions".


Added by:Mew.
Date:2014-09-18
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ASM64