猪小侠最近学习了最长上升子序列的相关知识。对于一个整数序列 ,定义 的子序列为:从 中删除若干个元素后(允许不删,也允许将所有 个元素都删除),剩下的元素按照原来的顺序所组成的序列。如果这个子序列的元素从左到右严格递增,则称它为 的一个上升子序列。其中包含元素数量最多的上升子序列称为 的最长上升子序列。例如, 和 都是 的最长上升子序列,长度都为 。
现在猪小侠遇到了这样一个问题:给定一个序列 ,设 是 的子序列,且 的最长上升子序列的长度不超过 ,则 的长度最大能是多少?
猪小侠觉得这个问题太简单了,缺乏挑战,他决定提出一个更难的问题。于是他给了你这样一个序列 ,以及若干次询问。每次询问会给定两个整数 和 ,你需要对于 序列的前 个元素构成的序列 和 回答上述问题。
输入格式
第一行两个整数 ,其中 是序列 B 的长度, 是询问次数。
第二行是空格隔开的 个正整数 。
接下来 行,其中第 行包含两个整数 ,表示对 进行询问。
输出格式
输出共 行,按顺序每行一个整数作为回答。
样例一
input
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
output
4
6
5
8
7
11
explanation
询问1:对于序列,可以选取子序列,它的最长上升子序列长度为。
询问2:对于序列,可以选取子序列,它的最长上升子序列长度为。
询问3:对于序列,可以选取子序列,它的最长上升子序列长度为。
询问4:对于序列,可以选取子序列,它的最长上升子序列长度为。
询问5:对于序列,可以选取子序列,它的最长上升子序列长度为。
询问6:对于序列,可以选取子序列,它的最长上升子序列长度为。
样例二
见样例数据下载。
限制与约定
测试点 |
|
约束 |
---|
1 | | |
2 | | |
3 | |
4 | | |
5 | |
6 | | |
7 |
8 | | |
9 | |
10 | | |
11 | | |
12 | | |
13 | |
14 | | |
15 | | 没有约束 |
16 | |
17 | |
18 | |
19 |
20 |
对于 的数据,,,。
时间限制:
空间限制:
下载
样例数据下载