最小鸽
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

对于一排鸽子,每个鸽子有一个鸽值
定义某一区间内鸽子的鸽子的程度为这段区间内鸽值的最大值
定义某一区间内鸽子的不鸽的程度位这段区间内鸽值的或
现在你需要某一只鸽子代替你去做户外的事情,但是只有一段区间内的鸽子的
不鸽程度大于这段区间内鸽子程度时,这些鸽子才愿意出动
那么每次选定一只鸽子,请你回答:最少要同时出动多少只鸽子?

输入描述:

第一行两个数字: n,m 表示鸽子的数量和询问的数量
第二行 n 个数字,第 i 个数字表示第 i 只鸽子的鸽值
接下来 m 行,每行一个数字,请你回答包含要让这只鸽子出动最少需要同时出动几只鸽子

输出描述:

对于每个询问,输出一行一个整数

如果无论如何都不能让这只鸽子出动,请输出一行一个数字 -1
示例1

输入

复制
8 8
9 3 1 7 5 6 1 8
1
2
3
4
5
6
7
8

输出

复制
2
2
3
4
2
2
2
2

说明

对于 30% 的数据 n,m<=2000
对于 60% 的数据 n,m<=6000
对于 100% 的数据, n,m<=300000
所有鸽子的鸽值小于等于1e9