#P6859. 蝴蝶与花

蝴蝶与花

Description

Amazing John 很喜欢花。

Amazing John 的花圃里有 nn 朵花,他每天都会在花园里散步。

对于每一朵花 Amazing John 会评价它好看或不好看。被评价好看的花的美丽值为 22,被评价不好看的花的美丽值为 11

我们可以抽象的把这 nn 朵花看做在一条直线上。每次散步时, Amazing John 会从任意一朵花开始,一直往下一朵花走。到任意一朵花结束。在路途中,他会将所有经过的花的美丽值统计下来。(当然包括开始的花和结束的花)

现在 Amazing John 想知道,能否有一种散步方案,使得他从第 ll 朵花走到第 rr 朵花的美丽值之和正好是 ss

为了少走一些路, Amazing John 要你给出在所有方案中 ll 最小的方案。

当然,为了避免在花圃中散步过于单调, Amazing John 随时可能会将一朵花的美丽值更改。

每个询问之间互相独立,即统计过的花朵在下次询问时仍可被统计。

Input Format

第一行两个数 n,mn,m,分别表示花的个数和 Amazing John 的要求个数。

第二行 nn 个数字 aia_i,表示第 ii 朵花的美丽值。

接下来 mm 行,每一行表示一个询问操作或一个修改操作。

询问操作格式为 A s,表示询问是否有一种散步方案使得美丽值之和为 ss

修改操作格式为 C i val,表示将第 ii 朵花的美丽值改成 val(val=1val(val=12)2)

Output Format

若有 qqA 操作,输出应有 qq 行。

对于每一个询问,若有合法的方案,输出这个方案的左右端点位置(多种方案时输出左端点最小的方案),否则输出 none

您应该保证 1lrn1\leq l\leq r\leq n

5 4
1 2 2 1 1
A 5
C 1 2
A 5
A 233
1 3
2 4
none

Hint

Subtask 1 (20pts)\operatorname{Subtask\ 1}\ (20pts):对于数据点 151\sim 5,满足 1n,m10001\leq n,m\leq 1000

Subtask 2 (30pts)\operatorname{Subtask\ 2}\ (30pts):对于数据点 6106\sim 10,满足 1n,m2.5×1051\leq n,m\leq 2.5\times 10^5

Subtask 3 (50pts)\operatorname{Subtask\ 3}\ (50pts):对于数据点 111511\sim 15,满足 1n,m2×1061\leq n,m\leq 2\times 10^6

对于 100%100\% 的数据,有 1n,m2×106,0s23111\leq n,m\leq 2\times 10^6,0\leq s\leq 2^{31}-1。每次修改操作时 i[1,n],val{1,2}i\in[1,n],val\in\{1,2\}

对于所有数据点,时间限制 2000ms2000\operatorname{ms},空间限制 256MB256\operatorname{MB}