#S1011. 交换序列

交换序列

Description

给你一个由 nn 个整数 a1a2ana_1、a_2、…、a_n和一个整数 xx 组成的序列 aa 。你的任务是使序列 aa 成为有序序列(如果a1a2a3ana_1≤a_2≤a_3≤……≤a_n,则认为它有序)

为了使序列有序,你可以执行以下操作任意次数(可能为零次):选择一个整数 ii,满足1inai>x1≤i≤n且a_i>x,交换 aia_ixx 的值。

例如,如果 a=[0,2,3,5,4],x=1a =[0,2,3,5,4],x=1 ,则可以执行以下操作序列:

  1. 选择i=2i=2(满足 a2>xa_2>x),使得a=[0,1,3,5,4]x=2a=[0,1,3,5,4],x=2
  2. 选择i=3i=3(满足a3>xa_3>x),使得a=[0,1,2,5,4]x=3a=[0,1,2,5,4],x=3
  3. 选择i=4i=4(满足a4>xa_4>x),使得a=[0,1,2,3,4]x=5a=[0,1,2,3,4],x=5

计算为了使得 aa 有序必须执行的操作的最小次数,或提出这是不可能的。

Format

Input

第一行包含一个整数 t1t500t(1≤t≤500)测试样例数量。

每组测试样例由两行组成。第一行包含两个整数 nnxx1n5000x500(1≤n≤500,0≤x≤500),即序列 aa 的长度和 xx 的初始值。

第二行包含 nn 个整数,即 a1a_1 , a2a_2 , ..., ana_n (0ai5000≤a_i≤500).

输入中所有测试样例中 nn 的总和不超过 500500

Output

对于每组测试样例,输出一个整数,即为了使得 aa 有序必须执行的操作的最小次数;如果无法使得序列 aa 有序,输出 1-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