Группа друзей только что сыграла партию в мини-гольф. Поля для мини-гольфа состоят из нескольких лунок. Каждый игрок по очереди играет на каждой лунке, несколько раз ударяя по мячу, пока он не упадет в лунку. Счет игрока на этой лунке — это количество ударов по мячу. Чтобы некомпетентные игроки не слишком замедляли игру, существует также верхний предел l (положительное целое число) для счета: если игрок ударил по мячу l раз и мяч не упал в лунку, счет для этой лунки записывается как l, и ход этого игрока окончен. Общий счет каждого игрока представляет собой просто сумму его очков на всех лунках. Естественно, более низкий балл считается лучшим.
Есть только одна проблема: никто из игроков не может запомнить значение целого числа l. Они решают, что не будут применять какой-либо верхний предел во время игры, позволяя каждому игроку продолжать игру до тех пор, пока мяч не упадет в лунку. После игры они намерены найти значение l и скорректировать результаты, заменяя любой результат на лунке, превышающий l, на l.
Игра только что закончилась, но игроки еще не нашли l. Они задаются вопросом, какие у них наилучшие ранги. В этой задаче ранг игрока — это количество игроков, которые набрали равное или меньшее общее количество очков после корректировки очков с помощью l. Например, если скорректированные очки игроков составляют 3,5,5,4 и 3, то их ранги составляют 2,5,5,3 и 2 соответственно.
Зная очки игроков на каждой лунке, определите наименьший возможный ранг для каждого игрока.
В первой строке заданы два целых числа p и h, где p (2≤p≤500) — количество игроков, а h (1≤h≤50) — число лунок. Следующие p строк содержат h натуральных чисел. j-е число в i-ой строке является результатом игрока i на лунке j и не превышает 109.
Выведите строку с минимально возможным рангом для каждого игрока в том же порядке, в котором игроки перечислены во входных данных.