{"raw_statement":[{"iden":"statement","content":"给定一个长为 $n$ 的序列 $a$，每个位置是一个 $[1,n]$ 内的整数。\n\n定义 $f(i,j)$ 表示有多少 $x$ 满足 $i\\le x<j$ 且 $a_x\\neq a_{x+1}$。\n\n有 $m$ 次操作：\n\n`1 l r x`：表示将区间 $[l,r]$ 中所有元素都修改为 $x$。\n\n`2 l r x`：表示查询区间 $[l,r]$ 中，对任意 $l\\le i<j\\le r$，且 $a_i=a_j=x$，$f(i,j)$ 的和。\n"},{"iden":"input","content":"第一行两个数 $n,m$。\n\n第二行 $n$ 个用空格隔开的数表示序列 $a$。\n\n之后 $m$ 行，每行四个用空格隔开的数 $opt,l,r,x$ 表示一次操作。"},{"iden":"output","content":"对每个 $2$ 操作，输出一行一个数表示答案。"},{"iden":"note","content":"Idea：nzhtl1477，Solution：nzhtl1477，Code：ccz181078，Data：ccz181078\n\n对于 $20\\%$ 的数据，满足 $1\\le n,m\\le 1000$。\n\n对于另外 $20\\%$ 的数据，没有 $1$ 操作。\n\n对于另外 $10\\%$ 的数据，数据中的操作类型在 $[1,2]$ 内， $a_i,x$ 在 $[1,100]$ 内均匀随机生成，区间 $[l,r]$ 两个端点为 $[1,n]$ 中均匀随机生成的整数，如果生成后 $l>r$，则将二者交换。\n\n对于另外 $30\\%$ 的数据，满足 $1\\le n,m\\le 10^5$。\n\n对于 $100\\%$ 的数据，满足 $1\\le n,m \\le 5\\times10^5$，$1\\le l\\le r\\le n$，$1\\le a_i,x\\le n$，所有输入均为整数。"}],"translated_statement":null,"sample_group":[["10 10\n2 1 2 1 8 3 2 1 2 2\n2 6 9 2\n2 3 10 2\n2 2 10 2\n2 1 3 2\n2 4 10 1\n1 2 4 2\n2 3 10 2\n2 2 7 1\n2 2 7 2\n2 3 6 2","2\n20\n20\n2\n4\n30\n0\n9\n0"]],"show_order":[],"formal_statement":null,"simple_statement":null,"has_page_source":false}