프라임 라우팅
시간 제한2초메모리 제한512 MB
무향 그래프에서 같은 간선을 여러 번 지나도 된다고 할 때 S에서 T로 가는 길이 중 소수인 최소 길이를 구하고, 불가능하면 -1을 출력한다.
문제
Fox Jiro는 ACM-ICPC 2018 아시아 요코하마 지역 대회의 스태프 중 한 명으로, 대회장의 네트워크를 설계하는 일을 맡고 있다. 그의 네트워크는 개의 컴퓨터로 이루어져 있고, 이들은 개의 케이블로 연결되어 있다. 번째 케이블은 번째 컴퓨터와 번째 컴퓨터를 연결하며, 양방향으로 데이터를 전송한다. 여러분의 팀은 대회에서 번째 컴퓨터를 사용하고, 심사 서버는 번째 컴퓨터이다.
그는 소수의 마법 같은 힘으로 참가자들의 성능을 최대화하기 위해 네트워크의 라우팅 알고리즘을 조정하기로 했다. 이 알고리즘에서 패킷(네트워크가 나르는 데이터의 단위)은 가능하다면 소수 번 케이블을 통과하여 여러분의 컴퓨터에서 심사 서버로 보내진다. 불가능하다면 참가자들은 소수의 마법 같은 힘으로 이득을 얻을 수 없다. 이 목표를 달성하기 위해 패킷은 같은 케이블을 여러 번 통과할 수 있다.
여러분은 에서 로 가는 패킷이 케이블을 통과해야 하는 최소 횟수를 계산하는 프로그램을 작성하기로 했다. 패킷이 케이블을 통과하는 횟수가 소수가 될 수 없다면 을 출력한다.
입력
입력은 하나의 테스트 케이스로 이루어져 있으며, 형식은 다음과 같다.
$N$ $M$ $S$ $T$ $a_1$ $b_1$ $\vdots$ $a_M$ $b_M$
첫째 줄은 네 개의 정수 , , , 로 이루어져 있다(, , , ). 다음 개 줄의 번째 줄은 두 개의 정수 와 로 이루어져 있으며(), 이는 번째 케이블이 네트워크에서 번째 컴퓨터와 번째 컴퓨터를 연결한다는 뜻이다. 네트워크는 다음 조건을 만족한다고 가정할 수 있다.
- 네트워크에 다중 간선이 없다. 즉, 모든 , ()에 대해 이다.
- 개의 컴퓨터에서 보낸 패킷은 몇 개의 케이블을 통과하여 에 도달할 수 있다. 그 개수가 소수일 필요는 없다.
출력
에서 로 보낸 패킷이 케이블을 통과하는 횟수가 소수가 되는 방법이 있다면, 그 최소 소수를 한 줄에 출력한다. 그렇지 않다면 을 출력한다.