「EZEC-9」模糊众数

题目描述

给你一个长为 $n$ 的序列 $a$。 你可以将序列中的某个数增加 $1$,称为一次操作。 你需要处理 $q$ 次询问。 对于每次询问,求出 $a$ 在至少多少次操作后,可以形成一个序列 $a'$,使得 $x$ 为 $a'$ 的众数。 **注意:一个序列可能有多个众数。**

输入输出格式

输入格式


第一行两个整数 $n,q$。 第二行 $n$ 个整数 $a_1,a_2,\ldots,a_n$。 后 $q$ 行每行一个整数 $x$。

输出格式


对于每次询问,若无解输出 `-1`,否则输出最少的操作次数。 每个答案之间用换行隔开。

输入输出样例

输入样例 #1

6 2
1 1 1 3 3 3
2
10

输出样例 #1

3
13

说明

**【样例 1 解释】** - $x=2$ 时,一种可行的方案为 $a'=[1,2,2,3,3,4]$。 - $x=10$ 时,一种可行的方案为 $a'=[1,2,3,4,5,10]$。 **【数据规模与约定】** **本题采用捆绑测试。** - Subtask 1(5 points):$n=3$。 - Subtask 2(5 points):所有 $a_i$ 均相等,**时间限制为 2000 ms**。 - Subtask 3(5 points):$n\le 10$,$q\le 10^3$。 - Subtask 4(15 points):$n\le 100$,$q\le 10^4$。 - Subtask 5(15 points):$n\le 10^3$。 - Subtask 6(15 points):$q\le 10^3$。 - Subtask 7(40 points):**时间限制为 2000 ms**。 对于 $100\%$ 的数据,$1\le n,q\le 10^5$,$1\le a_i,x\le 10^9$。