Bạn có một mảng gồm \(n\) số nguyên dương \(a_1, a_2, \ldots, a_n\).
Bạn được phép thực hiện phép biến đổi sau nhiều lần:
- Chọn hai số \(a_i\) và \(a_j\) (\(i \ne j\)). Nếu \(a_i \ge a_j\) thì xoá \(a_j\) khỏi mảng và tăng \(a_i\) lên \(1\).
Nhiệm vụ: Với một giá trị \(k\) cho trước, hãy biến đổi để số lượng phần tử \(\ge k\) trong mảng là lớn nhất có thể.
Input
-
Dòng đầu tiên chứa hai số nguyên \(n\) và \(q\) (\(1 \le n, q \le 10^5\)) --- số phần tử và số truy vấn.
-
Dòng thứ hai chứa \(n\) số nguyên dương \(a_1, a_2, \ldots, a_n\) (\(1 \le a_i \le 10^9\)).
-
Mỗi trong \(q\) dòng tiếp theo chứa một số nguyên \(k_i\) (\(1 \le k_i \le 10^9\)).
Output
In ra \(q\) dòng, dòng thứ \(i\) là số phần tử \(\ge k_i\) nhiều nhất có thể thu được sau khi biến đổi.
Example
Input:
5 2
21 9 5 8 10
10
15
Output:
3
1
Input:
5 1
1 2 3 4 5
100
Output:
0
Notes
Trong ví dụ đầu tiên:
-
Với \(k = 10\), chọn phần tử \(9\) và \(8\), tăng \(9\) thành \(10\), xoá \(8\), thu được mảng \((21, 10, 5, 10)\) có 3 phần tử \(\ge 10\).
-
Với \(k = 15\), dù biến đổi thế nào cũng chỉ có 1 phần tử \(\ge 15\).
Bình luận
Đăng nhập để bình luận
Chưa có bình luận nào.