Statement
쿠옹이는 친구들과 함께 카지노에 방문했다. 쿠옹이는 카지노에 있던 게임 중 룰렛이라는 게임에 흥미가 돋았다.
룰렛의 규칙은 다음과 같다.
- 부터 까지 정수가 하나씩 적혀 있는 룰렛이 있다.
- 쿠옹이는 짝수와 홀수 중 하나를 고르고 베팅할 금액을 정한다. 은 짝수도 홀수도 아니며 선택할 수 없다.
- 베팅이 끝나면 룰렛이 돌아가고 적힌 정수 중 하나가 균등한 확률로 선택된다.
- 쿠옹이가 짝수를 골랐고 짝수가 선택되는 경우 또는 쿠옹이가 홀수를 골랐고 홀수가 선택되는 경우 쿠옹이가 승리하고 베팅한 금액만큼 돈을 얻는다.
- 쿠옹이가 승리하지 못했다면 베팅한 금액만큼 돈을 잃는다.
- 쿠옹이는 소지금 내에서 원하는 만큼 베팅할 수 있다. 베팅을 원하지 않는다면 하지 않아도 된다.
쿠옹이는 룰렛을 재미있게 즐기던 중 남은 돈이 원밖에 없다는 것을 깨달았다. 하지만 쿠옹이는 원 이상을 소지해야 버스를 타고 집에 갈 수 있다.
카지노가 문을 닫기까지 최대 번 룰렛을 더 할 수 있다. 카지노가 문을 닫기 전까지 쿠옹이가 원 이상을 소지해 버스를 타고 집에 갈 수 있을 확률을 구하라. 쿠옹이는 똑똑해서 항상 버스를 타고 집에 갈 수 있을 확률을 최대화하는 방향으로 베팅한다. 쿠옹이가 베팅하는 횟수를 최소화하지는 않음에 유의하라.
Input
첫째 줄에 네 정수 , , , 가 공백으로 구분되어 주어진다. 은 짝수
Output
쿠옹이가 집에 갈 수 있을 확률을 기약분수로 나타냈을 때 라면 을 출력한다. 은 소수이며 은 의 모듈러 곱셈에 대한 역원이다.
Subtasks
Samples
예제 1
입력
2 3 6 2
출력
332748118
예제 2
입력
1000 999 1000 1000
출력
550269985
예제 3
입력
2 1 1000 9
출력
0