#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int a[N];
int tr[N];
int n,m,k;
void add(int x,int d)
{
for(int i=x;i<=m;i+=i&-i)
tr[i]+=d;
}
int query(int x)
{
int res=0;
for(int i=x;i;i-=i&-i)
res+=tr[i];
return res;
}
bool check(int mid)
{
int cnt=0,bl=1,l=1;
for(int i=1;i<=n;++i)
{
int cur=i-l-query(a[i]);
if(cnt+cur>mid)
{
++bl;
cnt=0;
for(int j=l;j<i;++j)
add(a[j],-1);
l=i;
}
else cnt+=cur;
add(a[i],1);
}
for(int i=l;i<=n;++i)
add(a[i],-1);
return bl<=k;
}
int b[N];
void solve()
{
cin>>n>>k;
for(int i=1;i<=n;++i)
cin>>a[i],b[i]=a[i];
sort(b+1,b+n+1);
m=unique(b+1,b+n+1)-b-1;
for(int i=1;i<=n;++i)
a[i]=lower_bound(b+1,b+m+1,a[i])-b;
int l=-1,r=n*n+1;
while(l+1<r)
{
int mid=l+r>>1;
if(check(mid))
r=mid;
else
l=mid;
}
cout<<r<<'\n';
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);
int T;
for(cin>>T;T;--T)
solve();
}