#2195. Settlers' Training
Settlers' Training
Description
B. Settlers' Training
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
在战略电脑游戏 "定居者II "中,人们必须建造防御结构来扩大和保护领土。让我们来看看这些建筑中的一个。目前,这个防御结构正好可以容纳N个士兵。在这个任务中,我们可以假设防御结构中的士兵数量不会增加或减少。
每个士兵都有一个军衔--从1到k的某个自然数。1代表小兵,k代表将军。士兵的等级越高,他的战斗力就越强。因此,玩家通过拥有尽可能高的军衔的士兵而获利。
为了提高士兵的军衔,他们需要训练。但士兵们不会免费训练,每次训练都需要一个金币。每次训练时,所有的N个士兵都要在场。
每次训练结束后,士兵的军衔都会增加,具体如下。首先,所有士兵被分成具有相同军衔的小组,以便形成尽可能少的小组。然后,在军衔低于k的士兵所在的每个小组中,正好有一名士兵的军衔增加了1。
你知道此刻所有n个士兵的军衔。请确定将所有士兵的军衔提高到k级所需的金币数量。
输入
第一行包含两个整数n和k(1≤n,k≤100)。它们分别代表士兵的数量和不同等级的数量。第二行包含n个不依次递减的数字。其中第i个数字ai代表防御建筑中第i个士兵的等级(1≤i≤n,1≤ai≤k)。
输出
打印一个整数--将所有士兵提升到最大等级所需的金币数量。
Examples
Input
4 4 1 2 2 3
Output
4
Input
4 3 1 1 1 1
Output
5
Note
在第一个例子中,等级将以下列方式提高。
1 2 2 3 → 2 2 3 4 → 2 3 4 4 → 3 4 4 4 → 4 4 4 4
这样总共有4次训练,需要4枚金币。