Point: 100.0
Time limit: 1.0s
Memory limit: 640 M
Input: stdin
Output: stdout
Author:  
Problem type
Ngôn ngữ cho phép
C, C#, C++, Java, Pascal, Python, Text

Cho một mảng \(n\) số, số thứ \(i\)\(a_i.\) Bạn có một phép biến đổi như sau:
Chọn hai số \(a_i\)\(a_j\ (i ≠ j),\) nếu \(a_i ≥ a_j\) thì \(a_j\) biến mất và \(a_i = a_i + 1\)

Yêu cầu

Cần biến đổi để thu được nhiều số nhất lớn hơn hoặc bằng một giá trị \(K\) cho trước nào đó.

Dữ liệu

  • Dòng đầu chứa số \(T\) – số test \((1 ≤ T ≤ 5)\). Các test cụ thể như sau:
  • Dòng đầu tiên chứa \(N\)\(Q\) là số phần tử trong mảng và số truy vấn \((1 ≤ N,Q ≤ 10^5)\)
  • Dòng thứ hai là \(N\) nguyên \(a_1,..., a_n\) là các phần tử của mảng \(A\ (1 ≤ a_i ≤ 10^9)\)
  • Dòng thứ \(i\) trong \(Q\) dòng tiếp theo chứa \(K_i\ (1 ≤ K_i ≤ 10^9)\)

Kết quả

Với mỗi test, in ra \(Q\) dòng, dòng thứ \(i\) là số phần tử lớn nhất còn lại mà phần tử nhỏ nhất lớn hơn hoặc bằng \(K_i\)

INPUT

2
5 2
21 9 5 8 10
10
15
5 1
1 2 3 4 5
100

OUTPUT

3
1
0