가재
시간 제한1초메모리 제한128 MB
특수 간선을 지날 때마다 진행 방향이 뒤집히는 단방향 그래프에서, 각 집에서 출발해 뒤로 가는 방향으로 시작하고 끝나는 왕복 여행으로 방문할 수 있는 집의 수를 구한다.
문제
연못에 거북이 마리가 살고 있습니다. 이 연못에는 번부터 번까지 번호가 붙은 집이 채 있고, 각 집에는 거북이가 정확히 한 마리씩 삽니다. 모든 거북이와 친구인 여행자 가재가 이 연못을 찾아와 집 한 채에 머물려고 합니다. 가재는 되도록 많은 친구를 방문할 수 있는 집을 고르고 싶어 합니다.
친구를 방문한다는 것은, 가재가 머무는 집에서 그 친구의 집까지 갔다가 다시 돌아오는 것을 뜻합니다. 가재는 자신이 머무는 집의 거북이는 방문한 친구 수에 세지 않습니다.
가재는 다음 규칙에 따라 일방통행 경로를 이용해 집 사이를 이동합니다.
- 가재는 주어진 경로로만 이동합니다.
- 모든 경로는 일방통행이며 서로 다른 두 집을 잇습니다. 같은 두 집을 잇는 경로가 여러 개일 수도 있습니다.
- 가재는 정방향 또는 역방향으로 이동합니다. 집 에서 정방향으로 이동할 때는, 에서 로 가는 경로가 있으면 집 로 갈 수 있습니다. 역방향으로 이동할 때는, 에서 로 가는 경로가 있으면 집 에서 집 로 갈 수 있습니다.
- 일부 경로는 특별한 경로입니다. 특별한 경로를 지난 직후 가재는 이동 방향을 뒤집습니다. 정방향이었으면 역방향으로, 역방향이었으면 정방향으로 바뀝니다. 가재는 이 방법이 아니고서는 방향을 바꿀 수 없습니다.
- 이동을 시작할 때 가재는 역방향으로 움직입니다. 친구의 집을 지나가는 것만으로는 방향이 바뀌지 않습니다. 이동이 끝날 때 가재는 다시 역방향으로 움직이고 있어야 합니다. (따라서 마지막으로 지나는 경로가 특별한 경로라면, 그 경로에 들어서기 직전에는 정방향으로 움직이고 있어야 합니다.)
연못의 경로들을 읽고, 각 집에 대해 가재가 그 집에 머문다면 방문할 수 있는 친구가 몇 명인지 출력하는 프로그램을 작성하세요.
입력
첫 번째 줄에 두 정수 과 이 주어집니다 (, ). 각각 집의 수와 경로의 수를 나타냅니다. 이어지는 개의 줄에는 경로가 한 줄에 하나씩 주어지며, 각 줄에는 세 정수 , , 가 있습니다 (, , ). 는 경로의 시작 집, 는 도착 집이며, 일 때에만 그 경로는 특별한 경로입니다.
출력
정확히 개의 줄을 출력합니다. 번째 줄에는 정수 하나를 출력하며, 이는 가재가 집 에 머문다면 방문할 수 있는 친구의 수입니다.
힌트
아래 그림은 집이 다섯 채이고 경로가 다섯 개인 연못을 보여 줍니다.

가재가 집 에 머물면 집 , , 를 방문할 수 있습니다. 집 에 머물면 집 , , 를, 집 에 머물면 집 , , 를, 집 에 머물면 집 , , 를 방문할 수 있습니다. 집 에 머물면 친구를 한 명도 방문할 수 없습니다.