Cho đồ thị có hướng gồm \(N\) đỉnh và \(M\) cạnh. Bạn hãy tìm cách vẽ thêm ít cạnh có hướng nhất có thể để trạng thái sau cùng của đồ thị thỏa mãn điều kiện: với mọi bộ ba đỉnh \((a,b,c)\), nếu tồn tại cạnh nối trực tiếp \(a\) tới \(b\) và tồn tại cạnh nối trực tiếp \(b\) tới \(c\) thì cũng tồn tại cạnh nối trực tiếp \(a\) tới \(c\).
Input
Dòng đầu chứa hai số nguyên \(N\) và \(M\). (\(3\leq N\leq 2000\), \(0\leq M\leq 2000\))
Dòng thứ \(i\) trong \(M\) dòng tiếp theo chứa hai số nguyên \(u_i\) và \(v_i\) (\(1\leq u_i, v_i\leq N\)), thể hiện một cạnh có hướng nối trực tiếp đỉnh \(u_i\) đến đỉnh \(v_i\).
Dữ liệu đảm bảo \(u_i\ne u_j\) hoặc \(v_i\ne v_j\) với mọi \(i\ne j\).
Output
In ra một số nguyên là số lượng tối thiểu cạnh có hướng cần vẽ thêm để đồ thị đáp ứng điều kiện trên đề bài.
Ví dụ
Sample input 1
4 3
1 4
3 2
4 3
Sample output 1
3
Giải thích
Trạng thái ban đầu của đồ thị:
Một phương án thỏa mãn là vẽ thêm \(3\) cạnh \((1, 3)\), \((1, 2)\) và \((4, 2)\).
Sample input 2
5 8
2 1
1 2
2 3
3 2
2 4
4 2
2 5
5 2
Sample output 2
12