#Lutece2870. 东风谷早苗 · 改

东风谷早苗 · 改

Migrated from Lutece 2870 东风谷早苗 · 改

All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.

Description

在幻想乡,东风谷早苗是以高达控闻名的高中生宅巫女。某一天,早苗终于入手了最新款的钢达姆模型。作为最新的钢达姆,当然有了与以往不同的功能了,那就是它能够自动行走,厉害吧(好吧,我自重)。早苗的新模型可以按照输入的命令进行移动,命令包含 ESWN 四种,分别对应四个不同的方向,依次为东、南、西、北。执行某个命令时,它会向着对应方向移动一个单位。作为新型机器人,自然不会只单单执行一个命令,它可以执行命令串。对于输入的命令串,每一秒它会按照命令行动一次。而执行完命令串最后一个命令后,会自动从头开始循环。在 00 时刻时早苗将钢达姆放置在了 (0,0)(0,0) 的位置,并且输入了命令串。她想要知道 TT 秒后钢达姆所在的位置坐标。

注意:向东移动,坐标改变改变为 (X+1,Y)(X+1,Y);向南移动,坐标改变改变为 (X,Y1)(X,Y-1);向西移动,坐标改变改变为 (X1,Y)(X-1,Y);向北移动,坐标改变改变为 (X,Y+1)(X,Y+1)


在幻想乡,东风谷早苗是以高达控闻名的高中生宅巫女。又一个某一天,早苗终于入手了最新款的钢达姆模型。作为最新的钢达姆,当然有了与以往不同的功能了,那就是它能够自主控制,厉害吧(好吧,我自重)。

这款最新钢达姆的创新点在于,它可以执行一个命令串的某个区间中的命令,还可以调整某个区间中某类命令的移动距离。形式化地说,东风谷早苗给钢达姆配置了一个长度为 nn 的命令串,最初,每类移动都只移动 11 单位长度。

  • 1 l r x\texttt{1 l r x}:表示在 [l,r][l,r] 区间中的 xx 类操作的移动距离增加了 11 单位长度。
  • 2 l r t\texttt{2 l r t}:表示在 00 时刻时早苗将钢达姆放置在了 (0,0)(0,0) 的位置,钢达姆执行命令串的 [l,r][l,r] 区间,并且执行完命令串最后一个命令(即 rr 位置的命令)后,会自动从头开始循环(即继续执行 ll 位置的命令)。早苗想知道 tt 秒后钢达姆所在的位置坐标。

早苗一共要修改和询问 mm 次,对于每次询问,请回答 tt 秒后钢达姆所在的位置坐标。

Input

第一行两个整数 n,m (1n,m2×105)n,m\ (1\le n,m\le 2\times 10^5),分别表示命令串长度和操作次数。

第二行一个长度为 nn 的字符串 SS,表示命令串。保证命令串中只包含 ESWN 四种字符,分别表示控制钢达姆向东、南、西、北移动。

接下来 mm 行,每行输入一个操作。保证所有命令中 1lrn1\le l\le r\le nx{E, S, W, N}x\in \{\texttt{E, S, W, N}\}1t1091\le t\le 10^9

Output

对于每个 22 类操作,输出一行两个整数 x,yx,y,表示钢达姆最后所在的位置坐标是 (x,y)(x,y)

Samples

11 3
NSWWNSNEEWN
2 1 11 12
1 1 4 W
2 1 5 11
-1 3
-8 3

Note

对于第一个询问,机器人的移动路线如下:

$$(0,0)\to (0,1)\to (0,0)\to (-1,0)\to (-2,0)\to (-2,1)\to\\ (-2,0)\to (-2,1)\to (-1,1)\to (0,1)\to (-1,1)\to (-1,2)\to (-1,3) $$

对于第一个修改,在区间 [1,4][1,4] 的两个 W 操作的移动距离都增加了 11,变成了 22

对于第二个询问,机器人从开始到第一次执行到第五个指令的移动路线如下:

$$(0,0)\to (0,1) \to(0,0) \to(-2,0) \to(-4,0) \to(-4,1) $$

之后,机器人重新开始从第一个指令执行,到再次执行到第五个指令时机器人位于 (8,2)(-8,2),然后再执行第一个指令,因此最后机器人停在 (8,3)(-8,3)

Resources

The 20th UESTC Programming Contest Preliminary