编程题
### 问题描述
给定一个长度为 $n$ 的数组 $a$ 。现在有 $q$ 次询问,给出两个整数 $l$ 和 $r$ ,求 $a[l]\;|\;a[l+1]\;| \cdots |\;a[r-1]\;|\;a[r]$ 的值,其中 $|$ 代表按位或。
### 输入格式
第一行两个整数 $n,q$ 分别数组的长度和询问次数。
接下来一行 $n$ 个整数,$a_1,a_2,\cdots,a_n$ ,表示数组 $a$ 。
接下来 $q$ 行:
每行两个整数 $l,r$ ,代表询问给出的区间。
### 输出格式
对于每一次询问,输出一个整数表示结果。
### 样例输入
```text
5 2
1 2 3 4 5
1 5
2 3
```
### 样例输出
```text
7
3
```
### 说明
对于第一次查询 $1\;|\;2\;|\;3\;|\;4\;|\;5 = 7$ 。
对于第二次查询 $2\;|\;3 = 3$ 。
### 评测数据规模
对于 $50$% 的评测数据,$1\leq n\leq 10^5, 1\leq q \leq 100, 1\leq l,r\leq n, 1 \leq a_i \leq 10^9$ 。
对于 $100$% 的评测数据,$1\leq n,q\leq 10^5, 1\leq l\leq r\leq n,1 \leq a_i \leq 10^9$ 。