Statement
지난번 기본구만 칠 줄 알던 호반우는 결국 민수와의 4구 대결에서 패배하고 말았다. 그래서 호반우는 흰 공이 정확한 좌표에 도착하는 특훈에 돌입했다.
당구대는 가로 , 세로 크기의 2차원 좌표계(, )로 이루어져 있다. 현재 호반우가 칠 흰 공은 좌표에 있고, 최종적으로 도착해야 하는 목표 좌표는 이다.
호반우는 흰 공에 당점(스핀)을 주어 정확한 거리만큼 굴려 멈추는 연습을 하고 있다. 한 번의 스트로크(타격)로 호반우는 다음 4가지 기술 중 하나를 구사할 수 있다.
밀어치기(상단): 흰 공이 축 방향으로 정확히 만큼 굴러가서 멈춘다.
끌어치기(하단): 흰 공이 축 방향으로 정확히 만큼 굴러가서 멈춘다.
좌측 회전(스핀): 흰 공이 축 방향으로 정확히 만큼 굴러가서 멈춘다.
우측 회전(스핀): 흰 공이 축 방향으로 정확히 만큼 굴러가서 멈춘다.
당구대 위의 좌표는 '당구장 사장님의 찬스' 좌표이다. 흰 공을 굴려 해당 좌표에 정확하게 멈추는 순간 호반우는 당구장 사장님의 조언을 받아 그 이후부터는 '사장님의 찬스'를 영구적으로 사용할 수 있게 된다. '사장님의 찬스'는 기존 4가지 기술 이외에도 한 번의 스트로크로 공을 축 또는 축의 방향으로 ±만큼 이동시킬 수 있는 기술이다.
호반우가 흰 공을 쳐서 목표 좌표 에 정확히 도달하기 위해 필요한 최소 스트로크 횟수를 구하는 프로그램을 작성하자.
주의사항
1. 는 축에 대응하고 는 축에 대응한다.
2. 실제 당구와 달리 벽(쿠션)을 맞고 반사되어 튕겨 나오는 이동은 불가능하다. 즉, 이동 경로가 당구대 범위를 조금이라도 벗어나게 되는 스트로크는 할 수 없다.
Input
첫 번째 줄에 당구대의 가로 크기 과 세로 크기 이 공백으로 구분되어 주어진다. ()
두 번째 줄에 흰 공의 시작 좌표 가 주어진다. (, )
Output
목표 좌표에 도달하기 위한 최소 스트로크 횟수를 출력한다. 도달할 수 없다면 -1을 출력한다.
Samples
예제1. (1, 1)에서 y축으로 +3만큼 이동을 해서 (1, 4)가 되고 사장님의 찬스 좌표를 밟아서 x축으로 4만큼 증가하게 된다.
예제4. 시작부터 A, B가 너무 강해서 당구대를 벗어나 버린다.