도미노 2

시간 제한1초메모리 제한128 MB

문제

도미노는 아주 재미있다. 아이들은 타일을 옆으로 세워 긴 줄로 늘어놓는 것을 좋아한다. 도미노 하나가 쓰러지면 다음 것을 쓰러뜨리고, 그것이 또 그다음 것을 쓰러뜨리며 줄을 따라 계속 이어진다. 그러나 때로는 어떤 도미노가 다음 도미노를 쓰러뜨리지 못해서, 연쇄를 다시 이어가려면 손으로 직접 쓰러뜨려야 한다.

손으로 쓰러뜨린 도미노들의 집합이 주어질 때, 쓰러지는 도미노의 총 개수를 구하여라.

도미노들은 방향이 있는 구조를 이룬다. 어떤 도미노가 쓰러지면 특정한 다른 도미노를 쓰러지게 만든다. 한 도미노는 손으로 쓰러뜨려졌거나, 이미 쓰러진 어떤 도미노가 (직접 또는 연쇄를 통해) 그것을 쓰러뜨릴 때 쓰러진다. 최종적으로 쓰러진 모든 도미노의 수를 세면 된다.

입력

첫 줄에는 테스트 케이스의 수 $T$가 주어진다. 각 테스트 케이스는 세 정수 $n$, $m$, $l$이 있는 줄로 시작하며, 세 값 모두 $10000$ 이하이다. 그 뒤에 $m + l$개의 줄이 이어진다. $n$은 도미노의 개수이고, 도미노는 $1$부터 $n$까지 번호가 매겨져 있다. 처음 $m$개의 줄에는 각각 두 정수 $x$와 $y$가 주어지며, 도미노 $x$가 쓰러지면 도미노 $y$도 쓰러진다는 뜻이다. 이어지는 $l$개의 줄에는 각각 정수 $z$가 하나씩 주어지며, 도미노 $z$가 손으로 쓰러뜨려졌다는 뜻이다.

출력

각 테스트 케이스마다 쓰러지는 도미노의 총 개수를 정수 하나로 한 줄에 출력한다.