Ahoy!你正在航行前往下一届“船只很酷”(Boats Are Pretty Cool)大会,准备推销你的最新发明:一种新型指南针。
在普通指南针上,很难读出精确的风向。然而,你的新型指南针让你能以更高的精度读出风向!该显示屏最多可以显示 1000 个字符的字符串。
不幸的是,你遇到了一些恶劣天气。经过几个小时的强风和大浪,你终于可以再次查看你的指南针了。你读出了你当前航行的风向 $X$,并知道你需要前往的风向 $Y$。然而,为了让船只转向,你必须在控制系统中输入船只需要转动的角度。为了回到正确的航线上,你需要转动的最小角度(以度为单位)是多少?
风向到角度的转换如下:四个基本风向 N、E、S 和 W 分别指向 0、90、180 和 270 度。还有四个由两个字母组成的方向:NE、SE、SW 和 NW,分别指向 45、135、225 和 315 度。
风向也可以由 $k \ge 3$ 个字母 $l_1l_2 \dots l_k$ 组成。在这种情况下,最后两个字母表示四个双字母风向之一,即 $l_{k-1}l_k \in \{\text{NE, SE, SW, NW}\}$,而其他字母等于这些字母之一,即对于所有 $i \le k - 2$,都有 $l_i \in \{l_{k-1}, l_k\}$。该风向指向以下两个风向的正中间:
- 风向 $l_2 \dots l_k$,
- 当你从 $l_2 \dots l_k$ 开始并沿着圆圈向 $l_1$ 方向移动时,遇到的第一个最多包含 $k - 1$ 个字母的风向。
例如,风向 SSSE 指向 SSE 和 S 的正中间,因为当从 SSE 向 S 移动时,S 是第一个最多包含 3 个字母的风向,这也可以在图 F.1 中看到。
图 F.1:风向
输入格式
输入包含:
- 一行,包含两个字符串 $X$ 和 $Y$ ($1 \le |X|, |Y| \le 1000$),表示如上所述的风向。
输出格式
输出从方向 $X$ 到 $Y$ 所需的最小转动角度。
你的答案的绝对误差应不超过 $10^{-6}$。
样例
样例输入 1
N S
样例输出 1
180
样例输入 2
NNE SSSE
样例输出 2
146.25
样例输入 3
ENE NW
样例输出 3
112.5