热身小游戏
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

Alice 和 Bob 在玩热身小游戏,Alice 给出 Bob 一个整数 nn 的初始值为 1,然后给出 q 次操作,每次操作格式如下:

 表示将 n 变为

 表示永久撤销第 l 次到第 r 次操作中的 1 操作。

3 输出 n 模  的值。

输入描述:

第一行一个正整数 q (  ) ,表示操作次数。

第二行至第 ,每行一个第一个正整数 op (  ) 表示此次操作的类型。

如果 op 为 1,则后面有一个整数 a ( );
如果 op2,则后面有两个整数 lr (  ) ,并且 r 小于等于当前的操作数;
如果 op3,则当前行结束。请对于每个操作执行对应的操作。

操作下标从 1 开始。

输出描述:

每次进行操作 3 时,输出一行一个数代表值。
示例1

输入

复制
6
1 5
3
1 223
3
2 1 4
3

输出

复制
5
1115
1