#include<bits/stdc++.h>
#define all(s)                       (s).begin(),(s).end()
#define des(s)                       sort(s.rbegin(),s.rend())
#define pb(x)                        push_back({x})//consider using emplace_back
#define mp(x,y)                      make_pair(x,y)
#define rev(v)                       reverse(v.begin(), v.end())
#define precision(x,p)               fixed<<setprecision(p)<<x
typedef  long long int               ll;
typedef unsigned long long int       ull;
typedef long double                  ld;
#define nl                           '\n'
#define vec                          vector<ll>
#define pari                         pair<ll,ll>
#define loop(i,n)                      for(ll i=0;i<n;i++)
#define loopk(i,k,n)                    for(ll i=k;i<n;i++)
#define read(v,n)                    for(ll i=0;i<n;i++) {ll val; cin>>val; v.pb(val);}
#define print(ar)                  { for(auto x:ar) cout<<x<<" ";cout<<endl;}
#define add_edge(adj,a,b)            { adj[a].pb(b); }
#define add_wedge(adj,a,b,w)         { adj[a].pb({b,w}); adj[b].pb({a,w});}
#define mod                          1000000007
#define inf                          1e18
#define ninf                         -1e18
using namespace std;

struct node
{
  int sz,x,y;
};


int  main()
{
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
ll t=1;
cin>>t;

while(t--)
    {
  
       ll n,k;
       cin>>n>>k;
       vec v;
       read(v,n);
       v.push_back(-1);
       ll ans=-1;
       for(ll i=0;i<10004&&k>0;i++)
       {
         ll indx=-1;
          for(ll j=0;j<n;j++)
          {
             if(v[j]<v[j+1])
             {
               v[j]+=1;
               k--;
               indx=j;
               break;
             }

          }
          if(k==0)
          {
            ans=indx+1;
            break;
          }
       }
       
         cout<<ans<<endl;
       


    }
}
