형제 게임

매 턴 상대가 고른 이동 횟수만큼 방향 간선을 이동해 1번 정점에서 출발해 N번 정점에서 턴을 마치는 최소 턴 수를 구합니다.

보통7게임 이론그래프동적 계획법아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

현성이가 형 현민이와 게임을 한다. 게임은 정해진 맵 위에서 진행한다.

맵에는 원 NN개와 화살표 MM개가 그려져 있다. 각 화살표는 서로 다른 두 원을 잇고, 말은 화살표가 가리키는 방향으로만 지나갈 수 있다.

게임을 시작할 때 말은 1번 원 위에 있다. 매 턴마다 현민이가 1 이상의 정수를 하나 말하고, 현성이는 말한 수만큼 말을 움직인다. 한 번의 이동은 화살표 하나를 따라 옆 원으로 가는 것이다.

그 턴의 이동을 모두 마쳤을 때 말이 NN번 원 위에 있으면 현성이가 이긴다. 이동이 아직 남은 상태에서 NN번 원을 지나가면 게임은 끝나지 않는다. 이동을 다 하기 전에 따라갈 화살표가 없어지면 현민이가 이긴다. 게임이 끝없이 이어져도 현민이가 이긴다.

현민이는 두뇌 서바이벌 프로그램에서 준우승할 만큼 똑똑해서 게임마다 계속 이겼다. 그래서 현성이의 멘탈을 생각해 조금 봐주기로 했다. 매 턴을 시작할 때 부르는 수를 aa, bb, cc 중에서만 고르기로 한 것이다. 그래도 현성이는 현민이를 이기지 못했다.

멘탈이 증발한 현성이가 당신에게 현민이를 이기는 전략을 짜 달라고 부탁했다. 현민이는 매 턴 말의 위치를 보고 자신에게 가장 유리한 수를 부르고, 현성이는 그 수를 들은 뒤에 어떻게 움직일지 정한다. 두 사람 모두 최선을 다할 때 현성이가 이길 수 있는지 판단하고, 이길 수 있다면 게임을 끝내는 데 필요한 최소 턴 수를 구하여라.

입력

첫째 줄에 NN, MM, aa, bb, cc가 주어진다. NN은 원의 개수, MM은 화살표의 개수이고, aa, bb, cc는 현민이가 부를 수 있는 수다. (2N502 \le N \le 50, 0MN(N1)0 \le M \le N(N-1), 1a,b,c1001 \le a, b, c \le 100)

둘째 줄부터 MM개의 줄에 화살표의 시작점 uu와 끝점 vv가 주어진다. (1u,vN1 \le u, v \le N, uvu \ne v) 시작점과 끝점이 모두 같은 화살표가 두 번 주어지는 경우는 없다.

출력

현성이가 현민이를 이길 수 없으면 IMPOSSIBLE을 출력한다. 이길 수 있으면 이기는 데 필요한 최소 턴 수를 출력한다.

힌트

첫 번째 예제에서는 현민이가 1과 2를 번갈아 부르면 게임이 끝나지 않으므로 현민이가 이긴다.

두 번째 예제에서는 아래 전략을 쓰면 된다.

  • 현민이가 2나 3을 부르면 한 턴에 NN번 원으로 갈 수 있다.
  • 현민이가 1을 부르면 4번 원으로 가는 것이 최적이다. 말이 4번 원에 있으면 현민이가 다음 턴에 어떤 수를 불러도 한 턴에 NN번 원으로 갈 수 있다. 5번 원으로 가면 현민이가 2나 3을 불러서 이긴다. 2번 원으로 가면 현성이가 이기기는 하지만 턴이 더 필요하다.

두 번째 예제의 맵