Statement
서브컬쳐 팬덤에서 매년마다 최고의 캐릭터를 뽑는 토너먼트가 여럿 진행되는것을 알고 있나요? 전국 내아내임 토너먼트 역시 그중 하나로, 다음과 같은 방식으로 토너먼트가 진행됩니다.
- 총 명의 캐릭터가 토너먼트에 참여하며 번 작품에서는 총 명의 캐릭터가 참여합니다. 모든 캐릭터는 캐릭터 고유의 호감도를 가지고 있으며, 호감도는 이상 이하의 정수로 표현됩니다. 또한, 모든 캐릭터의 호감도가 다르다고 가정합니다.
- 토너먼트를 진행하기 전에 한번, 각 명의 캐릭터에게 에서 까지 서로 다른 정수를 부여합니다.
- 그 후, 를 에서 까지 줄여가면서 다음 행동을 반복합니다.
- 번이 부여된 캐릭터와 번이 부여된 캐릭터 중에서, 호감도가 더 높은 캐릭터에게 번을 새로 부여합니다.
- 모든 과정이 끝난 후, 번을 부여받은 사람이 토너먼트의 우승자가 됩니다.
하지만 이런 토너먼트에는 항상 비극이 따르기 마련이니, 팀킬, 즉 같은 작품에서 등장한 캐릭터끼리 싸우게 되는 일이 생깁니다. 구체적으로, 번 캐릭터와 번 캐릭터가 같은 작품에서 등장할 경우 결과와 상관없이 팀킬이 번 일어납니다.
당신은 각 캐릭터가 어느 작품에서 등장하는지는 알아도, 각 캐릭터의 호감도는 알지 못합니다. 그러므로 토너먼트의 결과는 각 캐릭터들이 호감도를 얼마나 가지는지 및 처음에 어떤 정수를 부여받는지에 따라 달라집니다. 가능한 토너먼트는 총 가지로, 이 모든 경우들에 대하여 팀킬 수의 기댓값을 으로 계산해주세요. 엄밀한 기댓값의 출력 방식은 출력 문단을 확인해주세요.
Input
첫번째 줄에 가 주어집니다. ()
두번째 줄에 가 주어집니다.() 이는 번째 작품에서 등장하는 캐릭터가 명이라는 뜻입니다.
Output
팀킬 수의 기댓값은 항상 유리수로 표현할 수 있으며, 기약분수 꼴로 표현하였을 때, 가 의 배수가 아닌것을 증명할 수 있습니다. 이때, 를 만족하는 정수 가 유일하게 존재합니다. 이 을 출력해주세요.
Samples
예제 1
입력
1 1
2
출력
1
예제 2
입력
1 2
1 1
출력
0
예제 3
입력
2 2
1 3
출력
499122178