#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=2e5+5,inf=9e18;
int T,n,k,l[maxn],r[maxn];
multiset<int> s;
signed main(){
scanf("%lld",&T);
while(T--){
scanf("%lld%lld",&n,&k);
for(int i=1;i<=n;++i)
scanf("%lld",&l[i]);
for(int i=1;i<=n;++i)
scanf("%lld",&r[i]);
int ans=inf,sum=0,len=0;
s.clear();
for(int i=1;i<=n;++i)
if(sum+(r[i]-l[i]+1)<k){
s.insert(r[i]-l[i]+1),++len;
sum+=(r[i]-l[i]+1);
} else{
if(len&&sum>=k&&(*s.begin())>=(r[i]-l[i]+1)){
ans=min(ans,len*2+l[i]+k-sum-1);
continue;
}
while(len&&(*s.begin())<(r[i]-l[i]+1)&&sum+(r[i]-l[i]+1)-(*s.begin())>=k){
sum-=(*s.begin());
s.erase(s.begin()),--len;
}
s.insert(r[i]-l[i]+1),++len;
ans=min(ans,len*2+l[i]+k-sum-1);
sum+=(r[i]-l[i]+1);
}
if(ans==inf)
puts("-1");
else
printf("%lld\n",ans);
}
return 0;
}