Сборище друзей
У Сакурако есть друзей. Каждый из них может быть описан своим вкладом на сайте по соревновательному программированию CodeCoders. Друг описывается числом — его вкладом.
Прямо сейчас, среди этих друзей, друг знаком с другом тогда и только тогда, когда . Сакурако хочет собрать как можно больше людей на вечеринку. Однако он хочет, чтобы все они были незнакомы друг с другом.
Формально, если он решит пригласить набор людей , то для каждого , где , должно выполняться условие .
Из всех возможных наборов людей он хочет узнать размер самого большого.
К сожалению, Сакурако не знает значение , поэтому ему нужно вычислить ответ для каждого .
Входные данные
Первая строка содержит одно целое число () — количество друзей Сакурако.
Вторая строка содержит целых чисел () — вклад каждого друга.
Выходные данные
Выведите чисел. -е число обозначает максимальный размер набора для .
Примеры
Примечание
В первом тесте:
Когда , ;
Для можно доказать, что максимальное возможное это ;
Для , и можно доказать, что одно из максимальных возможных это ;
Для можно доказать, что одно из максимальных возможных это .
Оценивание
( баллов): для всех ;
( баллов): ;
( балл): ;
( баллов): ;
( баллов): без дополнительных ограничений.