区间异或
题号:NC214363
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

有一个长度为 n 的数组 a[i] , 有 m 次询问, 每次询问给一个值 x , 找出一个最短的区间, 使得这个区间的异或和 ≥ x , 输出区间长度。如果找不到输出 -1

输入描述:

第一行两个整数 n , m (1 ≤ n ≤ 3000 and 0 ≤ m ≤ 2e5)

第二行 n 个整数 a[i] . (0≤ a[i] ≤ 1e9)

接下来 m 行, 每行一个整数 x , 代表一次询问。 (0 ≤ x ≤ 1e9)

输出描述:

每次询问输出满足条件的最短区间,如果找不到输出 -1


示例1

输入

复制
5 3

16 5 2 8 32

4 

48

33

输出

复制
1
5
2