#include <iostream>
#include <stdio.h>

using namespace std;

int main()
{
    freopen("LADDER.IN","r",stdin);
    int test;
    cin >> test;
    for(int chicl_test=0; chicl_test<test; chicl_test++)
    {
        int n,k; int p=-1;
        cin >> n >> k;
        int b=0;
        int z[100005];
        z[0]=-1;
        for(int i=0; i<n; i++) cin >> z[i+1]; //1 2
        while(1)
        {
            int minn = 2147483647; p=-1;
            for(int i=b+1; i<=min(b+k,n); i++)  // 1 1
            {
                  if (z[i]>z[b] && z[i]<=minn){minn = z[i]; p=i;} //  1 1
            }
            if (p==-1) {cout << b << endl; break;}
            b=p;
            if (b==n) {cout << b << endl; break;}
        }
    }
    return 0;
}

/* shag_1(int *m,int *c, int n, char* s)
{
    int alf[256];
    memset(alf,0.sizeof(alf));
    for(int i=0; i<n; i++) alf[s[i]]++;
    for(int i=1; i<256; i++) alf[i]+=alf[i-1];
    for(int i=0; i<n; i++) m[--alf[s[i]]] = i;
    c[m[0]]=0; int cls = 1;
    for(int i=1; i<n; i++)
    {
        if (s[m[i]]!=s[m[i-1]]) cls++;
        c[m[i]] = cls-1;
    }
    return cls;
}

void shag_n(int *m, int * c, int n, int cls)
{
    int alf[256],km[256],kc[256];
    for(int q=0; (1 << q)<n; q++)
    {
        for(int i=0; i<n; i++)
        {
            km[i] = m[i]  + (1 << q);
            if (km[i]<0) km[i]+=n;
        }
        memset(alf,0,sizeof(alf));
        for(int i=0; i<n; i++) alf[c[km[i]]]++;
        for(int i=1; i<cls; i++) alf[i]+=alf[i-1];
        for(int i=n-1; i>=0; i--) m[--alf[c[km[i]]]] = km[i];
        ck[m[0]]=0; cls =1;
        for(int i=1; i<n; i++)
        {
            int y1= ((1 << q) + c[m[i]])%n, y2=((1 << q) + c[m[i-1]])%n;
            if (c[m[i]]!=c[m[i-1]] || c[y1]!=c[y2]) cls++;
            ck[m[i]] = cls-1;
        }
        memcpy(c,ck,sizeof(n));
    }
}*/


//int gcd (int a, int b){ return b ? gcd(b,a%b) : a; }



