#include <bits/stdc++.h>
using namespace std;
#define int long long
int query(int node,int start,int end,int ar[],int tree[],int l,int r){
if(start>r||end<l)
return 0;
if(start>=l&&end<=r)
return tree[node];
int mid=(start+end)/2;
return max(query(2*node,start,mid,ar,tree,l,r),query(2*node+1,mid+1,end,ar,tree,l,r));
}
void update(int node,int start,int end,int ar[],int tree[],int ind,int val){
if(start==end){
tree[node]=val;
ar[ind]=val;
return;
}
int mid=(start+end)/2;
if(ind<=mid)
update(2*node,start,mid,ar,tree,ind,val);
else
update(2*node+1,mid+1,end,ar,tree,ind,val);
tree[node]=max(tree[2*node],tree[2*node+1]);
}
int solve(){
int n,L;
cin>>n;
pair<int,int>arr[n];
for(int i=0;i<n;i++){
int x;
cin>>x;
arr[i]={x,i+1};
}
cin>>L;
if(L>n||L<=0)
return -1;
sort(arr,arr+n);
int ar[n+1],tree[4*(n+1)+1];
memset(ar,0,sizeof(ar));
memset(tree,0,sizeof(tree));
int ans=INT_MAX;
for(auto it:arr){
int temp=query(1,1,n,ar,tree,1,it.second-1);
update(1,1,n,ar,tree,it.second,temp+1);
if(ar[it.second]>=L)
ans=min(ans,it.first);
}
if(ans==INT_MAX)
ans=-1;
return ans;
}
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
int t;
cin>>t;
while(t--){
cout<<solve()<<'\n';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZwppbnQgcXVlcnkoaW50IG5vZGUsaW50IHN0YXJ0LGludCBlbmQsaW50IGFyW10saW50IHRyZWVbXSxpbnQgbCxpbnQgcil7CglpZihzdGFydD5yfHxlbmQ8bCkKCQlyZXR1cm4gMDsKCWlmKHN0YXJ0Pj1sJiZlbmQ8PXIpCgkJcmV0dXJuIHRyZWVbbm9kZV07CglpbnQgbWlkPShzdGFydCtlbmQpLzI7CglyZXR1cm4gbWF4KHF1ZXJ5KDIqbm9kZSxzdGFydCxtaWQsYXIsdHJlZSxsLHIpLHF1ZXJ5KDIqbm9kZSsxLG1pZCsxLGVuZCxhcix0cmVlLGwscikpOwp9CnZvaWQgdXBkYXRlKGludCBub2RlLGludCBzdGFydCxpbnQgZW5kLGludCBhcltdLGludCB0cmVlW10saW50IGluZCxpbnQgdmFsKXsKCWlmKHN0YXJ0PT1lbmQpewoJCXRyZWVbbm9kZV09dmFsOwoJCWFyW2luZF09dmFsOwoJCXJldHVybjsKCX0KCWludCBtaWQ9KHN0YXJ0K2VuZCkvMjsKCWlmKGluZDw9bWlkKQoJCXVwZGF0ZSgyKm5vZGUsc3RhcnQsbWlkLGFyLHRyZWUsaW5kLHZhbCk7CgllbHNlCgkJdXBkYXRlKDIqbm9kZSsxLG1pZCsxLGVuZCxhcix0cmVlLGluZCx2YWwpOwoJdHJlZVtub2RlXT1tYXgodHJlZVsyKm5vZGVdLHRyZWVbMipub2RlKzFdKTsKfQppbnQgc29sdmUoKXsKCWludCBuLEw7CgljaW4+Pm47CglwYWlyPGludCxpbnQ+YXJyW25dOwoJZm9yKGludCBpPTA7aTxuO2krKyl7CgkJaW50IHg7CgkJY2luPj54OwoJCWFycltpXT17eCxpKzF9OwoJfQoJY2luPj5MOwoJaWYoTD5ufHxMPD0wKQoJCXJldHVybiAtMTsKCXNvcnQoYXJyLGFycituKTsKCWludCBhcltuKzFdLHRyZWVbNCoobisxKSsxXTsKCW1lbXNldChhciwwLHNpemVvZihhcikpOwoJbWVtc2V0KHRyZWUsMCxzaXplb2YodHJlZSkpOwoJaW50IGFucz1JTlRfTUFYOwoJZm9yKGF1dG8gaXQ6YXJyKXsKCQlpbnQgdGVtcD1xdWVyeSgxLDEsbixhcix0cmVlLDEsaXQuc2Vjb25kLTEpOwoJCXVwZGF0ZSgxLDEsbixhcix0cmVlLGl0LnNlY29uZCx0ZW1wKzEpOwoJCWlmKGFyW2l0LnNlY29uZF0+PUwpCgkJCWFucz1taW4oYW5zLGl0LmZpcnN0KTsKCX0KCWlmKGFucz09SU5UX01BWCkKCQlhbnM9LTE7CglyZXR1cm4gYW5zOwp9CnNpZ25lZCBtYWluKCl7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKCWNpbi50aWUoMCksY291dC50aWUoMCk7CglpbnQgdDsKCWNpbj4+dDsKCXdoaWxlKHQtLSl7CgkJY291dDw8c29sdmUoKTw8J1xuJzsKCX0KfQ==