#12004. 建筑

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: root

题目描述

Bardisk 和 Barisore 喜欢玩 Minecraft。这天 Bardisk 收集了 种建筑方块,第 种建筑方块有 个,Bardisk 想把这些方块铺成一个宽度为 的长方形,起初他把相似的方块铺在一起,但是 Barisore 嫌太丑了,她要求每行(即沿着宽度的方向)的 个方块种类都是不同的。

Bardisk 是建筑白痴,所以他想问问聪明的你,使用现有的材料,他最多可以按这样的要求铺多少行?

输入格式

第一行两个正整数 ,意义如题。

第二行 个正整数,表示序列 ,意义如题。

输出格式

输出一个正整数,表示答案。

样例

输入

6 5
1 9 1 9 8 6

输出

2

数据范围与提示

对于前 的数据,。

对于 的数据,。

本题考察贪心和二分。

样例解释

一共可以堆两行,第一行选择第 1、2、4、5、6 种方块各一个,第二行选择第 2、3、4、5、6 种方块各一个,这之后只剩下四种方块了,无法堆出新的一行,故答案为 。