Mivik 的游戏

题目背景

Mivik 和 W!ʌ!k 在玩游戏!

题目描述

Mivik 首先把 $n$ 枚硬币摆成一排,其中有一些正面朝上,其余的都是反面朝上。W!ʌ!k 打算不断执行以下操作直到这 $n$ 枚硬币中没有硬币反面朝上: - 如果现在这 $n$ 枚硬币中有 $k$ 枚硬币反面朝上,那么翻转从左到右第 $k$ 枚硬币。具体地,如果从左到右第 $k$ 枚硬币正面朝上,则将其变为反面朝上;如果从左到右第 $k$ 枚硬币反面朝上,则将其变为正面朝上。 在 W!ʌ!k 开始玩游戏之前,Mivik 想考考 W!ʌ!k。Mivik 想让 W!ʌ!k 算出他总共会进行多少次这样的操作,或者是 W!ʌ!k 永远无法停止执行操作。 W!ʌ!k 很快解决了这个问题,但是心理比 yky 还变态的 Mivik 显然不会放过他。Mivik 进行了很多次操作,每次他翻转了一个区间的硬币,他要求 W!ʌ!k 算出他总共会进行多少次这样的操作,或者是 W!ʌ!k 永远无法停止执行操作。 **请注意,W!ʌ!k 只是需要计算总共会进行多少次操作,而不会真正进行操作。**

输入输出格式

输入格式


输入共 $\left(m+2\right)$ 行。 第一行为两个非负整数 $n,m$,其中 $n$ 表示 Mivik 的硬币的个数,$m$ 表示 Mivik 进行的翻转操作的次数。 第二行为一个只包含有 $\texttt H$ 和 $\texttt T$ 的字符串。第 $i$ 个字符 $s_i$ 为 $\texttt H$ 则表示从左到右第 $i$ 枚硬币初始时是正面朝上;$s_i$ 为 $\texttt T$ 则表示从左到右第 $i$ 枚硬币初始时是反面朝上。 接下来 $m$ 行,每行两个正整数 $l_i,r_i$,表示 Mivik 翻转了从左到右数 $l_i\sim r_i$(包括 $l_i$ 和 $r_i$)的硬币。

输出格式


输出 $\left(m+1\right)$ 行,分别表示在真正执行操作前后共 $\left(m+1\right)$ 个时刻开始 W!ʌ!k 总共会进行多少次这样的操作,或者是 W!ʌ!k 永远无法停止执行操作。如果某一时刻 W!ʌ!k 不能停止执行操作,则在对应行输出字符串 $\texttt{never}$。

输入输出样例

输入样例 #1

2 2
TT
2 2
1 2

输出样例 #1

2
1
3

输入样例 #2

5 0
HTHTH

输出样例 #2

8

输入样例 #3

10 10
HTHHTHTHHH
9 9
5 5
10 10
7 7
6 6
9 9
4 4
9 9
7 7
2 2

输出样例 #3

19
30
27
40
33
38
27
28
37
40
47

说明

### 样例解释 #1 初始时两枚硬币都是反面朝上,因此如果 W!ʌ!k 从此刻开始执行操作, W!ʌ!k 会将编号为 $2$ 的硬币翻转过来。操作后只有一枚硬币反面朝上,因此第 $2$ 次操作会将编号为 $1$ 的硬币翻转过来。在第 $2$ 次操作后没有硬币反面朝上,因此 W!ʌ!k 不会再执行操作,总共会执行 $2$ 次操作。 ### 样例解释 #2 这 $8$ 次操作分别翻转了第 $2,1,2,3,4,3,2,1$ 枚硬币。 ### 测试点约束 **本题采用捆绑测试。** 对于全部数据,有 $1\le n,m\le10^6$,$s_i\in\left\{\texttt H,\texttt T\right\}$,$1\le l_i\le r_i\le n$。 每个子任务的具体限制见下表: | 子任务编号 | 分值 | 特殊限制 | |:-:|:-:|:-:| | 1 | 10 | $n\le3$ | | 2 | 20 | $n,m\le100$ | | 3 | 30 | $m\le10$ | | 4 | 20 | $l_i=r_i$ | | 5 | 20 | 无 | **本题读入输出量较大,请使用较快的读入输出方式。**