#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
const int MOD = pow(10,9)+7;
const int MOD2 = 998244353;
const int INF = LLONG_MAX/2;
int primes[1000000];
void seive(){
fill(primes, primes + 1000000, 1);
primes[0] = primes[1] = 0;
for(int i = 2 ; i*i < 1000000 ; i++){
if(primes[i]){
for(int j = i*i ; j < 1000000 ; j += i){
primes[j] = 0;
}
}
}
for(int i = 1 ; i < 1000000 ; i++){
primes[i] += primes[i-1];
}
}
int factorial(int n){
if(n==0){
return 1;
}
return (n*(factorial(n-1)))%MOD;
}
bool isPrime(int n){
if(n <= 1) return false;
for(int i = 2 ; i*i <= n ; i++){
if(n % i == 0) return false;
}
return true;
}
int power(int a, int b){
if(b == 0) return 1;
a %= MOD;
int value = power(a, b / 2);
if(b % 2 == 0){
return (value * value) % MOD;
} else {
return ((value * value) % MOD * (a % MOD)) % MOD;
}
}
int gcd(int a, int b){
if(a == 0) return b;
return gcd(b % a, a);
}
void solve() {
int n,target;
cin>>n>>target;
int nums[n];
for(int i = 0 ; i<n ; i++){
cin>>nums[i];
}
int l = 0,r=n-1;
int ans = -1;
while(l<=r){
int mid = l+((r-l)/2);
if(nums[mid]==target){
ans = mid;
break;
}
if(nums[mid]>=nums[0]){
if(nums[mid]<target || nums[0]>target) l = mid+1;
else r = mid-1;
}
else{
if(nums[mid]>target || target>nums[n-1]) r = mid-1;
else l = mid+1;
}
}
cout<<ans<<endl;
}
signed main(){
ios::sync_with_stdio(false); cin.tie(NULL);
int t;
cin >> t;
while(t--){
solve();
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBlbmRsICdcbicKI2RlZmluZSBpbnQgbG9uZyBsb25nCmNvbnN0IGludCBNT0QgPSBwb3coMTAsOSkrNzsKY29uc3QgaW50IE1PRDIgPSA5OTgyNDQzNTM7CmNvbnN0IGludCBJTkYgPSBMTE9OR19NQVgvMjsKCmludCBwcmltZXNbMTAwMDAwMF07Cgp2b2lkIHNlaXZlKCl7CiAgICBmaWxsKHByaW1lcywgcHJpbWVzICsgMTAwMDAwMCwgMSk7CiAgICBwcmltZXNbMF0gPSBwcmltZXNbMV0gPSAwOwogICAgZm9yKGludCBpID0gMiA7IGkqaSA8IDEwMDAwMDAgOyBpKyspewogICAgICAgIGlmKHByaW1lc1tpXSl7CiAgICAgICAgICAgIGZvcihpbnQgaiA9IGkqaSA7IGogPCAxMDAwMDAwIDsgaiArPSBpKXsKICAgICAgICAgICAgICAgIHByaW1lc1tqXSA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBmb3IoaW50IGkgPSAxIDsgaSA8IDEwMDAwMDAgOyBpKyspewogICAgICAgIHByaW1lc1tpXSArPSBwcmltZXNbaS0xXTsKICAgIH0KfQppbnQgZmFjdG9yaWFsKGludCBuKXsKICAgIGlmKG49PTApewogICAgICAgIHJldHVybiAxOwogICAgfQogICAgcmV0dXJuIChuKihmYWN0b3JpYWwobi0xKSkpJU1PRDsKfQpib29sIGlzUHJpbWUoaW50IG4pewogICAgaWYobiA8PSAxKSByZXR1cm4gZmFsc2U7CiAgICBmb3IoaW50IGkgPSAyIDsgaSppIDw9IG4gOyBpKyspewogICAgICAgIGlmKG4gJSBpID09IDApIHJldHVybiBmYWxzZTsKICAgIH0KICAgIHJldHVybiB0cnVlOwp9CgppbnQgcG93ZXIoaW50IGEsIGludCBiKXsKICAgIGlmKGIgPT0gMCkgcmV0dXJuIDE7CiAgICBhICU9IE1PRDsKICAgIGludCB2YWx1ZSA9IHBvd2VyKGEsIGIgLyAyKTsKICAgIGlmKGIgJSAyID09IDApewogICAgICAgIHJldHVybiAodmFsdWUgKiB2YWx1ZSkgJSBNT0Q7CiAgICB9IGVsc2UgewogICAgICAgIHJldHVybiAoKHZhbHVlICogdmFsdWUpICUgTU9EICogKGEgJSBNT0QpKSAlIE1PRDsKICAgIH0KfQoKaW50IGdjZChpbnQgYSwgaW50IGIpewogICAgaWYoYSA9PSAwKSByZXR1cm4gYjsKICAgIHJldHVybiBnY2QoYiAlIGEsIGEpOwp9CnZvaWQgc29sdmUoKSB7CiAgICBpbnQgbix0YXJnZXQ7CiAgICBjaW4+Pm4+PnRhcmdldDsKICAgIGludCBudW1zW25dOwogICAgZm9yKGludCBpID0gMCA7IGk8biA7IGkrKyl7CiAgICAgICAgY2luPj5udW1zW2ldOwogICAgfQogICAgaW50IGwgPSAwLHI9bi0xOwogICAgaW50IGFucyA9IC0xOwogICAgd2hpbGUobDw9cil7CiAgICAgICAgaW50IG1pZCA9IGwrKChyLWwpLzIpOwogICAgICAgIGlmKG51bXNbbWlkXT09dGFyZ2V0KXsKICAgICAgICAgICAgYW5zID0gbWlkOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgaWYobnVtc1ttaWRdPj1udW1zWzBdKXsKICAgICAgICAgICAgaWYobnVtc1ttaWRdPHRhcmdldCB8fCBudW1zWzBdPnRhcmdldCkgbCA9IG1pZCsxOwogICAgICAgICAgICBlbHNlIHIgPSBtaWQtMTsKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgaWYobnVtc1ttaWRdPnRhcmdldCB8fCB0YXJnZXQ+bnVtc1tuLTFdKSByID0gbWlkLTE7CiAgICAgICAgICAgIGVsc2UgbCA9IG1pZCsxOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQ8PGFuczw8ZW5kbDsKfQoKc2lnbmVkIG1haW4oKXsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZShOVUxMKTsKICAgIGludCB0OwogICAgY2luID4+IHQ7CiAgICB3aGlsZSh0LS0pewogICAgICAgIHNvbHZlKCk7CiAgICB9CiAgICByZXR1cm4gMDsKfQoK