编程题
### 问题描述
这是一道标记永久化练习题,解法并不唯一。
给定 $N,Q$,初始时有长度为 $N$ 的序列 $\\{a\\}$,$\forall 1 \leq i \leq N,a_i=0$,要求支持 $Q$ 次操作,操作分为以下 $2$ 种:
> 1. 给定 $l,r,x$,$\forall l \leq i \leq r$,将所有 $a_i$ 修改为 $a_i | x$,其中 $|$ 表示或操作。
> 2. 给定 $u$,询问 $a_u$ 的权值。
### 输入格式
第一行包含 $2$ 个正整数 $N,Q$。
之后 $Q$ 行,每行第一个数 $type$ 表示操作类型:
> 如果 $type=1$,之后给定 $l,r,x$ 表示一次修改。
>
> 如果 $type=2$,之后给定 $u$,表示一次询问。
### 输出格式
对于每次询问操作,输出一行,表示答案。
### 样例输入
```text
5 4
1 1 4 1
1 2 5 2
2 1
2 2
```
### 样例输出
```text
1
3
```
### 评测数据规模
对于所有测评数据,$1 \leq N,Q \leq 10^5,1 \leq x \leq 10^9$。