You are given a sequence a consisting of n integers a_1, a_2, ..., a_n, and an integer x. Your task is to make the sequence a sorted (it is considered sorted if the condition a_1 ≤ a_2 ≤ a_3 ≤ ... ≤ a_n holds).

To make the sequence sorted, you may perform the following operation any number of times you want (possibly zero): choose an integer i such that 1 ≤ i ≤ n and a_i > x, and swap the values of a_i and x.

For example, if a = [0, 2, 3, 5, 4], x = 1, the following sequence of operations is possible:

  1. choose i = 2 (it is possible since a_2 > x), then a = [0, 1, 3, 5, 4], x = 2; 
  2. choose i = 3 (it is possible since a_3 > x), then a = [0, 1, 2, 5, 4], x = 3; 
  3. choose i = 4 (it is possible since a_4 > x), then a = [0, 1, 2, 3, 4], x = 5. 



Calculate the minimum number of operations you have to perform so that a becomes sorted, or report that it is impossible.

Input

The first line contains one integer t (1 ≤ t ≤ 500) — the number of test cases.

Each test case consists of two lines. The first line contains two integers n and x (1 ≤ n ≤ 500, 0 ≤ x ≤ 500) — the number of elements in the sequence and the initial value of x.

The second line contains n integers a_1, a_2, ..., a_n (0 ≤ a_i ≤ 500).

The sum of values of n over all test cases in the input does not exceed 500.

Output

For each test case, print one integer — the minimum number of operations you have to perform to make a sorted, or -1, if it is impossible.

Example

Input


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


Output


3
0
0
-1
1
3
#include <bits/stdc++.h>
using namespace std;

#pragma GCC target("avx,avx2,fma")
#pragma GCC optimize("Ofast")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")



void fast()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
}
void sample()
{
#ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif
}
long long int* read(long long int n)
{
    long long int* arr=new long long int[n];

    for(int i=0;i<n;i++)
        cin>>arr[i];

    return arr;
}
const long long int mod=1000000007;


long long int dp(long long int pos,long long int x,long long int pre,long long int* ar,long long int n)
{
	long long int ans=1e9;
	if(pos>=n)
		return 0;

	if(ar[pos]>=pre)
		ans=min(ans,dp(pos+1,x,ar[pos],ar,n));
	if(pre<=x && ar[pos]>x)
	{
		//swap(ar[pos],x);
		ans=min(ans,1+dp(pos+1,ar[pos],x,ar,n));
	}
	return ans;
}


void solve()
{
    long long int n,i,j,k,ans,m,o;

    cin>>n;

    //long long int ar[n];

    //long long int* ar=read(n);

    //vector<long long int> ar(n);

    long long int x;
    cin>>x;

    long long int ar[n];

    for(i=0;i<n;i++)
    	cin>>ar[i];


    ans=dp(0,x,0,ar,n);
    if(ans==1e9)
	{
		cout<<-1<<endl;
		return;
	}
	cout<<ans<<endl;






    
    return;
}





int main()
{
    fast();
    sample();
    long long int i, j, k, n, m, a, b, c, d, p, q, r, l, t = 1;
    long long int sum, count = 0, ans = 0;

    cin >> t;
    while (t--)
    {
        solve();

    }

    return 0;
}

