Problem2440--变换高度

2440: 变换高度

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MB

Description

Q是一个牛逼的少年,他段近无聊的在纸上画了n个塔.i个塔的高度是hi。他会对塔进行一种操作,操作定义为在某个高度H的时候,如果第i个塔的高度高于H,我们必须把这个塔的高度变成H. 这样一次操作的代价是从所有塔里面移除的1×1方块的总和。如果一次操作的代价小于等于k,那么我们就称这个操作为友好操作(kn)。

现在请你计算最少需要多少次友好操作,才能使得所有的塔的高度都变成相同。显然,这个肯定有答案.下面图可以参考(样例1 ) :



Input

输入第-行是两个整数nk, 表示塔的数量和操作相关的系数k

第二行有n个空格隔开的整数h1,h2,hn

对于50%的数据,1n2000hi2000

对于100%的数据,1n2×10^5nk10^9hi2×10^5

Output

输出只有一个整数,表示最少需要的友好操作的数量,使得每个塔的高度都相同。

Sample Input Copy

5 5
3 1 2 2 4

Sample Output Copy

2

Source/Category

枚举