#include<bits.stdc++.h>
using namespace std;
int findPivot(vector<int> A){
if(A.size()==0){
return -1;
}
int start=0,end=A.size()-1;
if(A[start]<=A[end]){
return -1; // already sorted
}
while(start<end){
if(start==end-1){
if(A[end]<A[start]){
return start; // nase case when 2 elements left
}else{
return -1;
}
}
int mid=start+(end-start)/2;
if(mid<A.size()-1 && A[mid+1]<A[mid]){
return mid; // pivot found
}
if(A[start]<=A[mid]){ // left part is sorted
start=mid;
}else{
end=mid;
}
}
}
int bin(vector<int> A, int B,int l, int r){
int start=l,end=r;
while(start<=end){
int mid=start+(end-start)/2;
if(A[mid]==B){
return mid;
}else if(A[mid]<B){
start=mid+1;
}else{
end=mid-1;
}
}
return -1;
}
int searchInRotatedArray(const vector<int> &A, int B) {
if(A.size()==0){
return -1;
}
int pivot=findPivot(A);
if(pivot==-1){
return bin(A,B,0,A.size()-1);
}
if(A[pivot]==B){
return pivot;
}else if(A[pivot]>B && A[0]<=B){
return bin(A,B,0,pivot);
}else if(A[pivot+1]<=B && A[A.size()-1]>=B){
return bin(A,B,pivot+1,A.size()-1);
}else{
return -1;
}
}
int main(){
int t;
cin>>t;
while(t--){
int n;
cin>>n;
vector<int> a(n);
for(int i=0;i<n;i++){
cin>>a[i];
}
int x;
cin>>x;
cout<<searchInRotatedArray(a,x)<<endl;
}
return 0;
}