#include <iostream>
using namespace std;
#include <vector>
#include <set>
#include<map>
#include <string>
#include <algorithm>
#include <cmath>
#include <cassert>
#include <utility>
#include <queue>
#include <stack>
#define ll long long
#include <cstdio>
#include <cstring>

template<typename T>
T floor_div(T a, T b) {
    return a / b - ((a ^ b) < 0 && a % b != 0);
}

template<typename T>
T ceil_div(T a, T b) {
    return a / b + ((a ^ b) > 0 && a % b != 0);
}

#define yes cout<<"YES"<<endl
#define no cout<<"NO"<<endl

#define TST_CASES 1


void Solve() {
    int n;
    ll k;
    cin>>n>>k;
    ll hgt[n+1];
    for(int i=1;i<=n;i++) {
        cin>>hgt[i];
    }
    int i=1;
    while(k>0) {
        i=1;
        while(i<n && hgt[i+1]<=hgt[i])
            i++;
        if(i==n) {
            cout<<-1<<endl;
            return;
        }
        if(i==1) {
            ll diff=hgt[2]-hgt[1];
            if(k>diff) {
                k-=diff;
                hgt[1]+=diff;
            }
            else {
                cout<<i<<endl;
                return;
            }
        }
        else if(i>1){
            ll diff=min(hgt[i+1]-hgt[i],hgt[i-1]-hgt[i]);
            if(diff==0) {
                if(k>1) {
                    hgt[i]+=1;
                    k--;
                }
                else {
                    cout<<i<<endl;
                    return;
                }
            }
            else if(k>diff) {
                k-=diff;
                hgt[i]+=diff;
            }
            else if(k<=diff){
                cout<<i<<endl;
                return;
            }
        }
    }
}

int main() {
#if TST_CASES
int t=1;
cin>>t;
while(t--)
#endif
Solve();
return 0;
}
