在火星某科学的研究所中,正在进行着一项关于“人工稳定可再生能源 (Artificial Stable Renewable Energy Resources)” 的研究,研究的过程中使用了一种被称为“Mars Automaton”(火星机器人,或战神机器人)的机器人,别名叫做"Auto-Correct Automaton",因为某种地球时代遗留下来的传统,研究者们通常把它简称作“AC机器人”,象征着某种美好的意义。
这种机器人可以合体,当若干个机器人走到同一个位置上,它们就会合体变成更大的机器人,并且其大小是所有参与合体的机器人的大小之和。
工作台上有n个用来放置机器人的位置,这些位置在同一条直线上,为了方便同事沟通,研究员从左到右依次对这些位置从1到n进行编号。相邻的两个位置之间铺设有轨道,机器人可以沿着轨道走到相邻的位置上。
对于摆放着机器人的位置,研究员会将这个位置与这个机器人的大小对应起来并进行记录。
初始时,所有位置上都摆放着大小为1的AC机器人。
研究员会不停地做两种操作:
1. 将从

的位置上全部替换为大小为1的AC机器人(对于没有放置机器人的位置,会直接摆上大小为1的机器人)。
2. 将

的所有位置与其它位置孤立,之后让这一段
区间上的所有机器人行动起来,AC机器人被设定了“采取正确行为”的指令,于是此区间的所有机器人会向
右走 (

),但是因为这段区间被孤立处理,当机器人走到区间的最右端后便会停在最右端上,于是最后这个区间的所有机器人都会在区间的最右端上,并且合为一体。
为了获取实验数据,研究员想要知道在区间

上有多少种不同大小的机器人。
形式化地说,对于一个长度为n的初始全1序列,之后会有多次三种操作:
1. 将区间[l, r]上的值全部修改为1。
2. 将区间[l, r]上的所有值求和,覆盖位置r上的值,之后区间内所有非r位置的值都会被设置为0。
3. 询问区间[l,r]上有多少种不同的非0数字。