题目描述
你有一个长度为 \(n\) 的数列 \(\{a_n\}\) ,这个数列由 \(0,1\) 组成,进行 \(m\) 个的操作:
\(1\ l\ r\) :把数列区间$ [l,r]$ 内的所有数取反。即 \(0\) 变成 \(1\) ,\(1\) 变成 \(0\) 。
\(2\ l\ r\) :询问数列在区间 \([l, r]\) 内共有多少个本质不同的子序列。
输入输出格式
输入格式:
第一行包含两个整数 \(n,m\),意义如上所述。
接下来一行包含 \(n\) 个数,表示数列 \(\{a_n\}\) 。
接下来 \(m\) 行,每行包含三个数,表示一个操作,操作格式如上所述。
输出格式:
对于每个询问,输出答案模 \(10^{9}+7\) 的结果。