编程题
### 问题描述
有一个长为 $n$ 的,只包含字符 `0` 和 `1` 的字符串 $s$,Alice 和 Bob 在这个字符串上玩游戏。Alice 和 Bob 每次游戏会选择字符串 $s$ 的一个连续子串。游戏开始时,Alice 和 Bob 分别有一个分数,初始都为 $0$。游戏中,从左到右对于子串的每一个字符,如果字符为 `0`,Alice 获得一分,如果为 `1`,Bob 获得一分。先取得 $3$ 分的人赢得游戏。当有人赢得游戏时,立刻开始下一局游戏,双方的分数清零。当子串的所有字符都被使用过后,游戏结束。如果在最后时没有人到达 $3$ 分,则认为这一局游戏没有人获胜。
例如,如果 Alice 和 Bob 用 `10110001` 进行游戏,游戏过程如下:
1. 第一个字符为 `1`,Bob分数增加 $1$,此时 Alice 和 Bob 分数分别为 $0$ 和 $1$。
2. 第二个字符为 `0`,Alice分数增加 $1$,此时 Alice 和 Bob 分数分别为 $1$ 和 $1$。
3. 第三个字符为 `1`,Bob分数增加 $1$,此时 Alice 和 Bob 分数分别为 $1$ 和 $2$。
4. 第四个字符为 `1`,Bob分数增加 $1$,此时 Alice 和 Bob 分数分别为 $1$ 和 $3$。Bob获得三分,赢得一局游戏。双方分数清零。
5. 第五个字符为 `0`,Alice分数增加 $1$,此时 Alice 和 Bob 分数分别为 $1$ 和 $0$。
6. 第六个字符为 `0`,Alice分数增加 $1$,此时 Alice 和 Bob 分数分别为 $2$ 和 $0$。
7. 第七个字符为 `0`,Alice分数增加 $1$,此时 Alice 和 Bob 分数分别为 $3$ 和 $0$。Alice获得三分,赢得一局游戏。双方分数清零。
8. 第八个字符为 `1`,Bob分数增加 $1$,此时 Alice 和 Bob 分数分别为 $0$ 和 $1$。字符串所有字符都被使用过,游戏结束。因为没有人取得 $3$ 分,这局游戏没有人获胜。
现在给定 $n$ 和字符串 $s$,接下来进行了 $q$ 次操作。操作有两种类型,按以下格式给出:
- `1 p`:翻转字符串的第 $p$ 个字符。如果其为 `1`,将其变为 `0`。如果其为 `0`,将其变为 `1`。
- `2 l r`:Alice 和 Bob 用 $s$ 的从 $l$ 到 $r$ 的子串进行了一次游戏。你需要分别回答在游戏中 Alice 和 Bob 赢得游戏的总次数。
### 输入格式
输入第一行包含两个正整数 $n,q$,表示字符串的长度和操作的总数。
第二行包含一个长为 $n$ 的,只包含字符 `0` 和 `1` 的字符串 $s$ 表示题目中描述的字符串。
接下来 $q$ 行,每一行表示一次操作。每行的第一个整数为 $op$,表示操作的类型。如果 $op$ 为 $1$,接下来有一个整数 $p$,表示翻转的字符的位置。如果 $op$ 为 $2$,接下来有两个整数 $l,r$,表示 Alice 和 Bob 进行游戏的字符串的左端点和右端点。
### 输出格式
对于每个 $op$ 为 $2$ 的操作,输出两个整数,分别表示 Alice 和 Bob 赢得游戏的总数。
### 样例输入
```text
10 5
1110100000
2 1 10
1 7
2 3 10
1 5
2 4 9
```
### 样例输出
```text
2 1
1 1
1 0
```
### 说明
对于第一个操作,Alice 和 Bob 进行游戏的字符串为 `1110100000`。第一局游戏 Bob 获胜,第二局和第三局游戏 Alice 获胜。
对于第二个操作,字符串 $s$ 变为 `1110101000`。
对于第三个操作,Alice 和 Bob 进行游戏的字符串为 `10101000`。第一局游戏 Bob 获胜,第二局游戏 Alice 获胜。
对于第四个操作,字符串 $s$ 变为 `1110001000`。
对于第五个操作,Alice 和 Bob 进行游戏的字符串为 `000100`。第一局游戏 Alice 获胜,第二局游戏因为子串没有未使用的字符而结束。此时 Alice 和 Bob 分数分别为 $2$ 和 $1$,没有人取得 $3$ 分,游戏结束。
### 评测数据规模
对于 $20$% 的评测数据,$1\leq n,q \leq 10^3$。
对于 $100$% 的评测数据,$1\leq n,q \leq 10^5$,$1\leq op \leq 2$,$1\leq p \leq n$,$1\leq l \leq r \leq n$。保证至少有一次操作为操作 $2$。