Группа друзей только что сыграла партию в мини-гольф. Поля для мини-гольфа состоят из нескольких лунок. Каждый игрок по очереди играет на каждой лунке, несколько раз ударяя по мячу, пока он не упадет в лунку. Счет игрока на этой лунке — это количество ударов по мячу. Чтобы некомпетентные игроки не слишком замедляли игру, существует также верхний предел (положительное целое число) для счета: если игрок ударил по мячу раз и мяч не упал в лунку, счет для этой лунки записывается как , и ход этого игрока окончен. Общий счет каждого игрока представляет собой просто сумму его очков на всех лунках. Естественно, более низкий балл считается лучшим.
Есть только одна проблема: никто из игроков не может запомнить значение целого числа . Они решают, что не будут применять какой-либо верхний предел во время игры, позволяя каждому игроку продолжать игру до тех пор, пока мяч не упадет в лунку. После игры они намерены найти значение и скорректировать результаты, заменяя любой результат на лунке, превышающий , на .
Игра только что закончилась, но игроки еще не нашли . Они задаются вопросом, какие у них наилучшие ранги. В этой задаче ранг игрока — это количество игроков, которые набрали равное или меньшее общее количество очков после корректировки очков с помощью . Например, если скорректированные очки игроков составляют и , то их ранги составляют и соответственно.
Зная очки игроков на каждой лунке, определите наименьший возможный ранг для каждого игрока.
В первой строке заданы два целых числа и , где — количество игроков, а — число лунок. Следующие строк содержат натуральных чисел. -е число в -ой строке является результатом игрока на лунке и не превышает .
Выведите строку с минимально возможным рангом для каждого игрока в том же порядке, в котором игроки перечислены во входных данных.