codeforces#P1832D2. Red-Blue Operations (Hard Version)

Red-Blue Operations (Hard Version)

Description

The only difference between easy and hard versions is the maximum values of $n$ and $q$.

You are given an array, consisting of $n$ integers. Initially, all elements are red.

You can apply the following operation to the array multiple times. During the $i$-th operation, you select an element of the array; then:

  • if the element is red, it increases by $i$ and becomes blue;
  • if the element is blue, it decreases by $i$ and becomes red.

The operations are numbered from $1$, i. e. during the first operation some element is changed by $1$ and so on.

You are asked $q$ queries of the following form:

  • given an integer $k$, what can the largest minimum in the array be if you apply exactly $k$ operations to it?

Note that the operations don't affect the array between queries, all queries are asked on the initial array $a$.

The first line contains two integers $n$ and $q$ ($1 \le n, q \le 2 \cdot 10^5$) — the number of elements in the array and the number of queries.

The second line contains $n$ integers $a_1, a_2, \dots, a_n$ ($1 \le a_i \le 10^9$).

The third line contains $q$ integers $k_1, k_2, \dots, k_q$ ($1 \le k_j \le 10^9$).

For each query, print a single integer — the largest minimum that the array can have after you apply exactly $k$ operations to it.

Input

The first line contains two integers $n$ and $q$ ($1 \le n, q \le 2 \cdot 10^5$) — the number of elements in the array and the number of queries.

The second line contains $n$ integers $a_1, a_2, \dots, a_n$ ($1 \le a_i \le 10^9$).

The third line contains $q$ integers $k_1, k_2, \dots, k_q$ ($1 \le k_j \le 10^9$).

Output

For each query, print a single integer — the largest minimum that the array can have after you apply exactly $k$ operations to it.

4 10
5 2 8 4
1 2 3 4 5 6 7 8 9 10
5 10
5 2 8 4 4
1 2 3 4 5 6 7 8 9 10
2 5
2 3
10 6 8 1 3
3 4 5 6 7 8 8 10 8 12
3 4 5 6 7 8 9 8 11 8
10 7 8 3 3