Олимпиадный тренинг

Задача . C. Собери команды


У вас есть \(n\) программистов, которых вы хотите распределить по командам. Навык \(i\)-го программиста равен \(a_i\). Вы хотите собрать из них максимальное количество команд. Для команд есть одно ограничение: количество программистов в команде, умноженное на минимальный навык среди всех программистов этой команды, должно быть как минимум \(x\).

Каждый программист может находиться максимум в одной команде. Некоторые программисты могут остаться без команды.

Посчитайте максимальное количество команд, которое вы можете собрать.

Входные данные

Первая строка содержит одно число \(t\) (\(1 \le t \le 1000\)) — количество наборов входных данных.

Первая строка каждого набора входных данных содержит два числа \(n\) и \(x\) (\(1 \le n \le 10^5; 1 \le x \le 10^9\)) — количество программистов и ограничение на навык команды соответственно.

Вторая строка каждого набора входных данных содержит \(n\) чисел \(a_1, a_2, \dots , a_n\) (\(1 \le a_i \le 10^9\)), где \(a_i\) равно навыку \(i\)-го программиста.

Сумма \(n\) по всем наборам не превосходит \(10^5\).

Выходные данные

На каждый набор входных данных выведите одно число — максимальное количество команд, которое вы можете собрать.


Примеры
Входные данныеВыходные данные
1 3
5 10
7 11 2 9 5
4 8
2 4 2 3
4 11
1 3 3 7
2
1
0

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя