这是一个网格系统!你从左上角出发,想要走到右下角。每个位置都在整数坐标上,并且有一个指向下方或右方的箭头,以及一个每隔几秒就会将箭头从下翻转为右,或从右翻转为下的计时器。当你开始行走时,每个箭头指向下方或右方的概率相等,且每个计时器的初始值都在从零到其最大等待时间的范围内均匀随机选择。当计时器归零时,它会重置为其最大值。
在任何时刻,如果你处于某个位置,你可以: 如果新位置在网格内且箭头指向下方,则向下移动一个位置。 如果新位置在网格内且箭头指向右方,则向右移动一个位置。 * 等待计时器倒计时结束,使得箭头从下翻转为右,或从右翻转为下。
当你到达一个新位置时,你可以看到计时器,因此在决定采取何种行动时可以将此考虑在内。然而,你无法预见未来——你只能看到你当前所处网格点的计时器和箭头。你讨厌等待,并希望最小化你等待箭头翻转的总时间。
如果你做出最优决策,你预期需要等待的时间是多少?
输入格式
输入包含一行,包含三个整数 $r, c$ ($1 \le r, c \le 10^3$) 和 $p$ ($1 \le p \le 10^9$),其中 $r$ 是网格的行数,$c$ 是网格的列数,$p$ 是计时器能显示的最大值。
输出格式
输出一个数字,表示如果你做出最优决策,预期需要等待的时间。如果你的答案与标准答案的绝对误差或相对误差在 $10^{-6}$ 以内,则会被接受。
样例
样例输入 1
2 3 8
样例输出 1
2.875
样例输入 2
5 5 5
样例输出 2
2.43223387