Một công ty đường dây điện thoại (TLC) đang xây dựng mạng cáp điện thoại mới. Họ kết nối nhiều điểm (gọi là "place"), được đánh số từ \(1\) đến \(N\). Không có hai điểm nào trùng số. Mỗi đường dây kết nối hai điểm theo hai chiều và luôn kết thúc tại trạm điện thoại ở mỗi điểm. Mỗi điểm đều có một trạm điện thoại. Từ bất kỳ điểm nào, ta đều có thể kết nối với bất kỳ điểm nào khác trong mạng (không nhất thiết phải trực tiếp, có thể qua trung gian). Thời gian trôi qua, đôi khi sẽ có trường hợp ngắt nguồn điện tại một điểm nào đó. Khi đó, trạm điện thoại tại điểm đó không hoạt động nữa. Và trong trường hợp như vậy, không chỉ điểm bị sự cố trở nên không thể kết nối với ai, mà có thể một số điểm khác cũng không thể liên lạc với nhau. Trong trường hợp đó, điểm bị sự cố được gọi là điểm quan trọng (critical place).
TLC muốn viết một chương trình để xác định xem trong mỗi mạng có bao nhiêu điểm quan trọng. Hãy giúp họ!
Dữ liệu vào
- Tập tin input gồm nhiều khối. Mỗi khối mô tả một mạng điện thoại.
- Dòng đầu mỗi khối: số nguyên \(N < 100\) là số điểm trong mạng.
- Tiếp theo tối đa \(N\) dòng, mỗi dòng bắt đầu bằng một số điểm \(x\) theo sau là danh sách các điểm có đường dây trực tiếp từ \(x\).
- Mỗi khối kết thúc bằng một dòng chỉ chứa số '0'.
- Tập tin kết thúc với một khối đặc biệt chỉ chứa dòng '0'.
Dữ liệu ra
- Với mỗi khối (ngoại trừ khối cuối), in ra một dòng duy nhất chứa số điểm quan trọng trong mạng tương ứng.
Input 1
5
5 1 2 3 4
0
6
2 1 3
5 4 6 2
0
0
Output 1
1
2
Nhận xét