Walk Alone is playing roulette, a kind of gambling. For simplification, we assume its rules and steps as follows:
-
The whole gambling process composes of many turns.
-
In the
-th turn:
-
Walk Alone can choose an integer
and pay
yuan as the wager.
-
If Walk Alone wins, he will get
yuan from the maker, which means he gains
yuan in this turn. Otherwise, the maker will devour the
yuan he has paid, which means he loses
yuan in this turn. The probability that Walk Alone wins is
.
Walk Alone has

yuan initially, and he wants to earn an extra

yuan. He will use the following strategy to gamble:
-
In the first turn, Walk Alone pays
yuan as the wager, i.e.,
.
-
If Walk Alone wins in the
-th turn, then
. Otherwise,
.
-
At the beginning of each turn, if Walk Alone has at least
yuan, then he gets satisfied and quits the game. Otherwise, he must pay
yuan as the wager, and he will have to stop gambling if he has less than
yuan.
Walk Alone's good friend, Kelin wants to exhort him not to gamble. Tell him the probability that he successfully earns an extra

yuan.
输入描述:
The only line of the input contains two integers
and
, indicating the initial amount of money and the amount of money Walk Alone wants to earn.
输出描述:
Output the probability that Walk Alone successfully earns an extra
yuan modulo
. It can be shown that the answer can always be expressed as an irreducible fraction
, where
and
are integers and
. Output such an integer
that
and
.
备注:
In the first example, Walk Alone has
yuan initially.
In the first turn, he pays
yuan as the wager, and he has
yuan left. He must win the turn, or in the next turn he will have to pay
yuan, and he does not have enough money. The probability that he wins is
.
In the second turn, he pays
yuan and has
yuan left. If he wins the turn, he will have
yuan, which reaches his goal. Otherwise, he will have to pay
yuan in the third turn, and he must win the turn to reach his goal. Hence the total probability is
.