你受雇于 Addictive Coin Machines 公司,协助设计他们一系列引人注目、令人沉迷、让人忍不住想再玩一次的弹珠机(Pachinko),供世界各地的赌场使用。
玩弹珠机时,玩家将弹珠发射到一个充满钉子、障碍物和目标的矩形网格中。弹珠在网格中反弹,直到最终击中其中一个目标。玩家根据击中的目标获得相应的分数。
下一款弹珠机的网格图案已经设计好了,但目标的得分尚未分配。这些分数必须经过设定,使得机器像所有赌场机器一样,既能盈利又不会盈利过多。因此,计算弹珠击中特定目标的概率非常重要。这就是你的工作!
为简化起见,网格被建模为一个高大的矩形,其中充满了大部分开放空间(每个用 ‘.’ 表示)、不可逾越的障碍物(每个用 ‘X’ 表示)和目标(每个用 ‘T’ 表示)。
弹珠以均匀的概率随机发射到网格顶行的某个开放空间中。从那时起,与钉子的碰撞会导致弹珠以给定的各种概率随机向上、向下、向左或向右反弹。为简化起见,假设这些概率在网格中的每个空间都是相同的。如果弹珠反弹到障碍物中或试图移出网格,它实际上不会从当前位置移动。当弹珠移动到目标中时,它将从游戏中移除。
你可以放心地假设,弹珠在击中目标之前平均访问的空间数不会超过 $10^9$。如果弹珠只是永远反弹下去,那游戏就不会那么有趣了!
对于每个目标,计算它被发射的弹珠击中的概率。
输入格式
输入包含单个测试用例。第一行包含整数 $w$ 和 $h$,它们分别是弹珠机网格的宽度和高度($1 \le w \le 20$ 且 $2 \le h \le 10\,000$)。下一行包含四个非负整数 $u, d, l$ 和 $r$,它们的和为 $100$,分别表示弹珠从任何开放空间向上、向下、向左或向右反弹的百分比概率。
接下来的 $h$ 行,每行包含 $w$ 个字符,每个字符为 ‘.’、‘X’ 或 ‘T’。这些行描述了弹珠机网格。描述网格顶行的第一行至少包含一个 ‘.’ 且不包含 ‘T’。
输出格式
对于网格中的每个 ‘T’,按从上到下、从左到右的顺序各输出一行。对于每个目标,显示发射的弹珠击中它的概率。答案的绝对误差应不超过 $10^{-6}$。
样例
样例输入 1
3 2 20 20 20 40 X.X T.T
样例输出 1
0.333333333 0.666666667
样例输入 2
4 5 12 33 28 27 .... .XX. .... T..T XTTX
样例输出 2
0.435853889 0.403753221 0.081202502 0.079190387