编程题
### 问题描述
小明是一名清洁工,他的工作是清理一个拥有 $n$ 个房间的宾馆。宾馆的房间编号为 $1$ 至 $n$。小明每天都会进入一个房间,如果这个房间已经被清理过,他就会将房间编号 $+1$,进入下一个房间。如果这个房间还没有被清理过,他就会将这个房间清理干净,并将它后面的所有房间编号都向前移动一位。
小明想知道,最少需要清理多少个房间,才能够保证至少有 $k$ 个房间的编号与它们在初始状态时的编号相同。
请你写一个程序,帮助小明计算最少需要清理的房间数。
### 输入格式
第一行包含两个整数 $n$ 和 $k$($1\leq k\leq n\leq 2\times 10^3$),表示房间的数量和要求编号相同的房间数量。
第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1\leq a_i \leq n$),表示宾馆初始状态下每个房间的编号。
### 输出格式
输出一个整数,表示最少需要清理的房间数。如果不存在一种方案能够满足要求,则输出 $-1$。
### 样例输入
```
5 2
3 5 2 4 3
```
### 样例输出
```
2
```