你居住在一个城市里,这里有许多南北向的道路和东西向的道路,它们交织在一起。相邻两条南北向道路之间的距离为 $1\,\text{km}$,相邻两条东西向道路之间的距离也为 $1\,\text{km}$。
这个城市里有一个市政府。我们将市政府所在的十字路口记作 $(0,0)$。城市中的十字路口可以用两个整数 $i, j$ 表示为 $(i, j)$。也就是说,十字路口 $(i, j)$ 表示从 $(0,0)$ 向东走 $i\,\text{km}$(若 $i < 0$ 则向西走 $-i\,\text{km}$),向北走 $j\,\text{km}$(若 $j < 0$ 则向南走 $-j\,\text{km}$)到达的位置。
市政府养了一只名叫 Joy 的狗。Joy 制定了一个为期 $K$ 天的散步计划。散步计划如下:
- 在 $K$ 天中的第一天早晨,Joy 位于十字路口 $(0,0)$。Joy 会在十字路口 $(0,0)$ 做标记。除了 $(0,0)$ 之外,Joy 没有在其他任何十字路口做过标记。
- 在 $K$ 天中的每一天白天,Joy 都会进行散步。一天的散步由 $N$ 个步骤组成。在每个步骤中,Joy 从当前十字路口移动到相邻的十字路口,并在移动目的地做标记。Joy 每天白天如何移动是不变的。
- 白天的移动结束后,Joy 会在当前所在的十字路口睡觉,直到第二天的早晨。
市政府正在讨论 Joy 在 $K$ 天散步后形成的“领地”。当四个十字路口 $(a,b), (a+1,b), (a+1,b+1), (a,b+1)$ 中的每一个都被 Joy 标记过至少一次时,由这四个十字路口围成的区域就属于 Joy 的领地。
你需要编写一个程序,根据 Joy 的散步计划,计算属于 Joy 领地的区域个数。
这个城市的道路非常长,且南北向和东西向都有足够多的道路,因此 Joy 在散步途中不会到达道路的尽头或城市的边缘。
任务
给定 Joy 的散步计划,编写一个程序计算属于 Joy 领地的区域个数。
输入格式
从标准输入读取以下内容:
- 第 1 行包含两个整数 $N, K$,以空格分隔。这表示每天的散步由 $N$ 个步骤组成,散步计划持续 $K$ 天。
- 第 2 行包含一个长度为 $N$ 的字符串 $S$。字符串 $S$ 中从左起第 $p$ 个字符 ($1 \le p \le N$) $C_p$ 为 E, N, W, S 中的任意一个。这些字符的含义如下:
- 若字符 $C_p$ 为 E,表示在第 $p$ 个步骤中向东侧相邻的十字路口移动。
- 若字符 $C_p$ 为 N,表示在第 $p$ 个步骤中向北侧相邻的十字路口移动。
- 若字符 $C_p$ 为 W,表示在第 $p$ 个步骤中向西侧相邻的十字路口移动。
- 若字符 $C_p$ 为 S,表示在第 $p$ 个步骤中向南侧相邻的十字路口移动。
其中,对于十字路口 $(i, j)$,其东侧、北侧、西侧、南侧的十字路口分别为 $(i+1, j), (i, j+1), (i-1, j), (i, j-1)$。
输出格式
将属于 Joy 领地的区域个数输出到标准输出。
数据范围
所有输入数据满足以下条件:
- $1 \le N \le 100\,000$
- $1 \le K \le 1\,000\,000\,000$
子任务
子任务 1 [5 分] 满足以下条件: $N \le 50$ $K = 1$
子任务 2 [10 分] * 满足 $K = 1$
子任务 3 [23 分] * 满足 $N \le 50$
子任务 4 [62 分] * 无额外限制。
样例
样例输入 1
12 1 EENWSEEESWWS
样例输出 1
3
说明
在该样例中,散步在 1 天内完成。第一天 Joy 从市政府出发,按如下路径移动。 黑点表示 Joy 标记过的十字路口,白点表示未标记的十字路口,双圆圈表示市政府所在的十字路口,数字表示每个步骤。
Joy 的移动路径
在样例 1 中,下图中斜线部分所示的 3 个区域属于 Joy 的领地。
样例 1 中 Joy 的领地
样例输入 2
12 2 EENWSEEESWWS
样例输出 2
7
说明
在样例 2 中,散步持续 2 天。每一天的移动路径与样例 1 相同。散步完成后,下图中斜线部分所示的 7 个区域属于 Joy 的领地。
样例 2 中 Joy 的领地
样例输入 3
7 1 ENNWNNE
样例输出 3
0
样例输入 4
16 5 WSESSSWWWEEENNNW
样例输出 4
21