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

Задача . A. Тетрис


Задача

Темы: реализация *900

Происходит следующий процесс.

Есть платформа, состоящая из \(n\) колонок. Квадраты размера \(1 \times 1\) появляются один за другим в некоторых колонках на платформе. Если в колонке нет квадратов, то квадрат появляется в нижнем ряду. Иначе же квадрат появляется сверху от самого высокого квадрата в этой колонке.

Когда в каждой из \(n\) колонок есть хотя бы один квадрат, нижний ряд удаляется. За это вы получаете \(1\) очко, а все остальные квадраты падают на один ряд вниз.

Ваша задача — посчитать количество очков, которое вы получите.

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

Первая строка содержит два целых числа \(n\) и \(m\) (\(1 \le n, m \le 1000\)) — количество колонок на платформе и количество квадратов.

В следующей строке содержится \(m\) целых чисел \(c_1, c_2, \dots, c_m\) (\(1 \le c_i \le n\)) — колонка, в которой появляется \(i\)-й квадрат.

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

Выведите единственное целое число — количество очков, которое вы получите.

Примечание

В примере ответ будет равен \(2\), потому что после появления \(6\)-го квадрата будет удален один ряд (количество квадратов на платформе будет выглядеть как \([2~ 3~ 1]\), и после удаления одного ряда как \([1~ 2~ 0]\)).

После появления \(9\)-го квадрата количества будут выглядеть как \([2~ 3~ 1]\), и после удаления одного ряда как \([1~ 2~ 0]\).

Следовательно, ответ будет равен \(2\).


Примеры
Входные данныеВыходные данные
1 3 9
1 1 2 2 2 3 1 2 3
2

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

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