{"raw_statement":[{"iden":"statement","content":"维护一个长度为 $n$ 的整数序列 $a$，支持三种操作：\n\n- `1 u v c`，对于 $\\forall i \\in [u,v]$，将 $a_i$ 更改为 $c$；\n- `2 u v c`，对于 $\\forall i \\in [u,v]$，将 $a_i$ 更改为 $\\max(a_i+c,0)$；\n- `3 u v`，输出 $\\sum \\limits_{i=u}^v [a_i=0]$ 的值。"},{"iden":"input","content":"第一行输入两个正整数 $n,m$，表示序列长度和操作个数。\n\n第二行输入 $n$ 个整数 $a_i$，表示序列的初始状态。\n\n第三行开始，往下 $m$ 行，每行表示一个操作。"},{"iden":"output","content":"输出若干行，每行一个整数，依次回答每个操作 $3$ 的问题。"},{"iden":"note","content":"对于 $100\\%$ 的数据，$1\\leq n,m\\leq 3\\times 10^5$，$0\\leq a_i\\leq 10^9$。\n\n- 对于操作 $1$，保证 $0\\leq c\\leq 10^9$。\n- 对于操作 $2$，保证 $|c| \\leq 10^9$。\n\n且对于所有操作，保证 $1\\leq u\\leq v\\leq n$。"}],"translated_statement":null,"sample_group":[["5 3\n6 4 6 6 4 \n2 1 5 -5\n1 3 4 4\n3 1 5","2"]],"show_order":[],"formal_statement":null,"simple_statement":null,"has_page_source":false}