Description
给你一个由 n 个整数 a1、a2、…、an和一个整数 x 组成的序列 a 。你的任务是使序列 a 成为有序序列(如果a1≤a2≤a3≤……≤an,则认为它有序)
为了使序列有序,你可以执行以下操作任意次数(可能为零次):选择一个整数 i,满足1≤i≤n且ai>x,交换 ai 和 x 的值。
例如,如果 a=[0,2,3,5,4],x=1,则可以执行以下操作序列:
- 选择i=2(满足 a2>x),使得a=[0,1,3,5,4],x=2;
- 选择i=3(满足a3>x),使得a=[0,1,2,5,4],x=3;
- 选择i=4(满足a4>x),使得a=[0,1,2,3,4],x=5;
计算为了使得 a 有序必须执行的操作的最小次数,或提出这是不可能的。
第一行包含一个整数 t(1≤t≤500)测试样例数量。
每组测试样例由两行组成。第一行包含两个整数 n和 x(1≤n≤500,0≤x≤500),即序列 a 的长度和 x 的初始值。
第二行包含 n 个整数,即 a1 , a2 , ..., an (0≤ai≤500).
输入中所有测试样例中 n 的总和不超过 500。
Output
对于每组测试样例,输出一个整数,即为了使得 a 有序必须执行的操作的最小次数;如果无法使得序列 a 有序,输出 −1 。
Samples
6
4 1
2 3 5 4
5 6
1 1 3 4 4
1 10
2
2 10
11 9
2 10
12 11
5 18
81 324 218 413 324
3
0
0
-1
1
3