题目描述
有n座塔,每座塔由若干个方块堆叠而成,第i座塔有 hi个方块,即塔的高度为 hi。
我们定义操作"切割"到高度H为,对于所有塔,如果塔的高度大于H,则把塔最上面若干个方块移除,使得塔的高度等于H。
"切割"的代价为过程中移除的方块个数。
每次"切割"的代价不能超过k,求最少切割次数,使得最后所有塔的高度一样.
输入格式
第一行两个整数 n和k。
第二行n个整数,表示 h1,j2,...,hn。
输出格式
一个整数,代表使得所有塔高度一样的最少"切割"次数。
样例
输入样例1
5 5
3 1 2 2 4
输出样例1
2
输入样例2
4 5
2 3 4 5
输出样例2
2
提示
对于50%的数据满足,
1<=n<=103,n<=k<=103,
对于100%的数据满足,
1<=n<=2×105,n<=k<=109,1<=hi<=2×105.