Trạng thái

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
Thông tin
Thông tin bài tập
Gửi bài giải
Điểm
100
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
640 M
I/O
stdin -> stdout
Tác giả
Loại đề bài
B02 - Thuật toán cơ bản : Sắp xếp
Ngôn ngữ cho phép
C, C#, C++, Java, Pascal, Python, Text