#Lutece3410. 无限面骰

无限面骰

Description

Alice 和 Bob 正在享受一款充满随机性的桌游。在游戏过程中,骰子常被用来决定各种随机事件的结果。不巧的是,他们只带了一枚 aa 面骰子,但有时游戏规则需要用到另一种规格为 bb 面的骰子。为了解决这个问题,他们可以通过多次投掷 aa 面骰子,将各次投掷的结果组合起来,构造出一个均匀分布的 bb 面骰子。

你的任务是帮助他们设计一种方案,使得模拟出的 bb 面骰子的每个面出现的概率相等,并且在保证均匀性的前提下,使所需投掷次数的期望值最小。

Input

一行两个整数 a,ba,b2a,b202\leq a,b \leq 20),表示 Alice 和 Bob 拥有的骰子的面数和他们希望模拟的骰子的面数。

Output

输出一个浮点数,表示最小的期望投掷次数。

如果你的输出与答案之间的绝对误差或相对误差不超过 10610^{-6},则认为你的输出正确。

Samples

6 2
1.0000000000
6 9
2.0000000000
6 20
2.5333333333

Note

第一组样例中,可以投掷一次六面骰,结果为 1,2,31,2,3 时当作 11,结果为 4,5,64,5,6 时当作 22,这样我们就成功模拟了一个二面骰。

第二组样例中,可以投掷两次六面骰,这样共有 6×6=366\times 6=36 种等概率的情况,我们可以把每四种情况对应为九面骰中的其中一面,这样就成功模拟了一个九面骰。

Resources

The 23rd UESTC Programming Contest Final