编程题
### 问题描述
对于一个整数,在计算机中是由二进制表示成的,从右往左依次从低位到高位,最右边是第 $0$ 位。
例如 $13$,其在计算机中的二进制为 $1101$,原理为 $1\times 2^0+0\times 2^1+1\times 2^2+1\times 2^3=13$。
现在给定 $1$ 个整数 $n$ 和 $m$ 次操作,操作具体为:
`1 x`:输出 $n$ 第 $x$ 位的值是 $0$ 还是 $1$,例如 $13$ 的第 $2$ 位值是 $1$。
`2 l r`:将 $n$ 第 $l$ 位到第 $r$ 位的值按位取反,然后输出 $n$ 的值。
`3 l r`:将 $n$ 第 $l$ 位到第 $r$ 位设置为 $1$,然后输出 $n$ 的值。
`4 l r`:将 $n$ 第 $l$ 位到第 $r$ 位设置为 $0$,然后输出 $n$ 的值。
`5`:输出该整数二进制中最后一个 $1$ 所代表的值,例如 $11010$ 你需要输出 $2$,$11000$ 你需要输出 $8$,如果不存在 $1$ 输出 $0$。
### 输入格式
第一行输入两个正整数 $n,m$。 ($1\le n< 2^{30},1\le m\le 2\times 10^5$)
接下来 $m$ 行,输入为其中 $1$ 种:
`1 x`:输出 $n$ 第 $x$ 位的值,例如 $13$ 的第 $2$ 位值是 $1$。$(0\le x< 30)$
`2 l r`:将 $n$ 第 $l$ 位到第 $r$ 位的值按位取反,然后输出 $n$ 的值。$(0\le l\le r\le 30)$
`3 l r`:将 $n$ 第 $l$ 位到第 $r$ 位设置为 $1$,然后输出 $n$ 的值。$(0\le l\le r\le 30)$
`4 l r`:将 $n$ 第 $l$ 位到第 $r$ 位设置为 $0$,然后输出 $n$ 的值。$(0\le l\le r\le 30)$
`5`:输出该整数二进制中最后一个 $1$ 所代表的值,例如 $11010$ 你需要输出 $2$,$11000$ 你需要输出 $8$,如果不存在 $1$ 输出 $0$。
### 输出格式
对于每次操作,按照题目要求输出。
### 样例输入
```text
13 6
1 3
2 1 3
3 1 3
4 1 2
5
2 1 1
```
### 样例输出
```text
1
3
15
9
1
11
```
### 说明
$13$ 的二进制为 $1101$。
第一次操作输出 $1$。
第二次操作后二进制变成 $0011$,输出 $3$。
第三次操作后二进制变成 $1111$,输出 $15$。
第四次操作后二进制操作变成 $1001$,输出 $9$。
第五次操作输出 $1$。
第六次操作后二进制变成 $1011$,输出 $11$。