编程题
### 问题描述
康康有一个序列 $B=(b_1, b_2, \cdots, b_n)$,以及若干次询问。设 $C$ 是 $B_m$ 的子序列,且 $C$ 的最长上升子序列的长度不超过 $k$。每次询问会给定两个整数 $m$ 和 $k$,你需要对于 $B$ 序列的前 $m$ 个元素构成的序列 $B_m = (b_1, b_2, \cdots, b_m)$ 和 $k$,求解出 $C$ 的最大长度。
### 输入格式
第一行两个整数 $n, q$,其中 $n$ 是序列 B 的长度,$q$ 是询问次数。
第二行是空格隔开的 $n$ 个正整数 $b_1, b_2, \cdots, b_n$。
接下来 $q$ 行,其中第 $i$ 行包含两个整数 $m_i,k_i$,表示对 $m = m_i, k = k_i$ 进行询问。
### 输出格式
输出共 $q$ 行,按顺序每行一个整数作为回答。
### 样例输入
```
11 6
9 6 3 1 5 12 8 4 2 2 2
5 1
7 2
9 1
9 2
11 1
11 11
```
### 样例输出
```
4
6
5
8
7
11
```
### 评测数据规模
$1 \leq n \leq 10^4$,$1 \leq q \leq 10^5$,$1 \leq b_i \leq 5 \times 10^4$,$1 \leq k_i \leq m_i \leq n$。