C. Бочки Либиха
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Даны m = n·k деревянных досок. i-я доска имеет длину ai. Необходимо собрать n бочек, каждая из k досок, для сборки можно использовать любые k досок. Каждая доска должна принадлежать ровно одной бочке.

Объемом vj бочки j назовем длину минимальной доски в ней.

Вы хотите собрать ровно n бочек с максимальным суммарным объемом. Однако их требуется сделать достаточно схожими, разница между объемами любых двух полученных бочек не должна превосходить l, это значит, что |vx - vy| ≤ l для любых 1 ≤ x ≤ n и 1 ≤ y ≤ n.

Выведите максимальную возможную сумму объемов достаточно схожих бочек или 0, если невозможно удовлетворить условие.

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

В первой строке записаны три целых числа n, k и l (1 ≤ n, k ≤ 105, 1 ≤ n·k ≤ 105, 0 ≤ l ≤ 109).

Во второй строке записаны m = n·k целых чисел a1, a2, ..., am (1 ≤ ai ≤ 109) — длины досок.

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

Выведите одно целое число — максимальную сумму объемов бочек или 0, если невозможно собрать ровно n бочек, удовлетворяющих условию |vx - vy| ≤ l для любых 1 ≤ x ≤ n и 1 ≤ y ≤ n.

Примеры
Входные данные
4 2 1
2 2 1 2 3 2 2 3
Выходные данные
7
Входные данные
2 1 0
10 10
Выходные данные
20
Входные данные
1 2 1
5 2
Выходные данные
2
Входные данные
3 2 1
1 2 3 4 5 6
Выходные данные
0
Примечание

В первом примере можно собрать следующие бочки: [1, 2], [2, 2], [2, 3], [2, 3].

В втором примере можно собрать следующие бочки: [10], [10].

В третьем примере можно собрать следующие бочки: [2, 5].

В четвертом примере разница между объемами бочек в любом разделении кк минимум 2, так что невозможно сделать бочки достаточно схожими.