#CF1551E. 固定点

固定点

固定点

  • 时间限制:1 秒
  • 内存限制:256 MiB

题目描述

给定一个整数序列 a1,a2,…,ana_1,a_2,\ldots,a_n。一次操作可以删除序列中的一个数,随后这个数右侧的所有数都向左移动一个位置。

对于删除操作结束后得到的序列 bb,若 bi=ib_i=i,则称位置 ii 是一个固定点。

请你求出,为使最终序列中至少有 kk 个固定点,最少需要删除多少个数。如果无论怎样删除都无法做到,输出 −1-1。

输入格式

第一行包含一个整数 tt,表示测试数据组数。

每组数据的第一行包含两个整数 n,kn,k,分别表示序列长度和所需固定点数量。

每组数据的第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n。

输出格式

对于每组数据,输出一行一个整数。若有解,输出最少删除次数;否则输出 −1-1。

样例输入 1

4
7 6
1 1 2 3 4 5 6
5 2
5 1 3 2 3
5 2
5 5 5 5 4
8 4
1 2 3 3 2 2 5 5

样例输出 1

1
2
-1
2

数据范围

对于所有数据,1≤t≤1001\le t\le100,1≤k≤n≤20001\le k\le n\le2000,1≤ai≤n1\le a_i\le n,且单个输入文件内所有测试数据的 nn 之和不超过 20002000。

子任务编号 分值 特殊限制
1 30 n≤12n \le 12
2 k=1k = 1
3 40 无特殊限制

提示

对于第一组样例,删除第一个数后得到 [1,2,3,4,5,6][1,2,3,4,5,6],其中有 66 个固定点。

对于第二组样例,可以删除原序列中的第一个数和第三个数,也可以删除第二个数和第三个数。