사탕 균등 분배
시간 제한3초메모리 제한256 MB
섬 그래프에서 어떤 도보 경로에 속한 사탕 수들의 최대공약수로 나타나는 정수가 몇 개인지 셈합니다.
문제
엔드레에게는 조카가 많다. 일 년에 한 번, 그는 조카 몇 명을 데리고 군도로 여행을 간다. 그곳에서는 선박 회사 한 곳이 일부 섬 쌍 사이에 양방향 배편을 운영한다. 엔드레 일행은 어느 섬으로든 비행기로 곧장 들어가고 나올 수 있으므로, 여행 하나는 비어 있지 않은 섬 수열 으로 나타낼 수 있다. 수열에서 이웃한 두 섬 와 사이에는 배편이 있어야 한다. 첫 섬과 마지막 섬은 같아도 되고 달라도 된다. 같은 섬을 여러 번 방문해도 된다.
섬마다 만드는 사탕이 다르고, 도착한 일행에게 정해진 개수만큼 사탕을 준다. 엔드레는 사탕을 좋아하지 않지만 아이들은 받자마자 다 먹어 치운다. 다툼을 막으려고 그는 일행이 섬에 도착해 사탕을 받을 때마다 아이들에게 똑같이 나눠 준다. 아이가 명이면 여행에서 방문한 모든 섬의 사탕 개수가 로 나누어떨어져야 한다는 뜻이다.
엔드레가 해마다 사탕을 똑같이 나눌 수 있는 이유는 간단하다. 여행사가 여행 계획, 즉 수열 을 미리 보내 준다. 그는 조카를 되도록 많이 데려가고 싶으므로, 똑같이 나눈다는 규칙을 어기지 않는 한도에서 데려갈 아이 수의 최댓값 를 구한다. 아이는 한 명 이상 데려간다. 여행 계획 하나가 데려갈 아이 수를 하나로 정한다.
여행이 여러 해 이어지는 동안 데려간 아이 수는 매번 달랐다. 엔드레는 데려갈 수 있는 아이 수가 몇 가지인지 궁금하다. 어떤 여행 계획을 세우면 아이를 정확히 명 데려가게 되는, 그런 정수 가 몇 개인지 구하라.
입력
첫 줄에 섬의 수 와 배편의 수 가 주어진다 (). 섬은 부터 까지 서로 다른 정수로 구분한다.
둘째 줄에 정수 가 주어진다. 는 섬 에 도착한 일행이 받는 사탕 개수다 ().
다음 개 줄에는 각각 배편 하나를 나타내는 두 정수 와 가 주어진다 (). 섬 에서 섬 로, 섬 에서 섬 로 갈 수 있다는 뜻이다. 같은 섬 쌍을 잇는 배편이 두 번 이상 주어지지는 않는다.
출력
어떤 여행 계획으로 아이를 정확히 명 데려가게 되는 정수 의 개수를 한 줄에 출력한다.