#include<iostream>
#include<vector>
int main()
{
int T;
std::cin>>T;
while(T--)
{
int n,m;
int Mark_Pos=0,Mark_Neg=0,Mark_Zero=0;
std::cin>>n>>m;
std::vector<int>vec(n,0);
for(int i=0;i<n;i++)
{
std::cin>>vec[i];
if(vec[i]>0)Mark_Pos++;
else if(vec[i]<0)Mark_Neg++;
else Mark_Zero++;
}
int ans;
if(Mark_Pos==m)
{
ans=0;
}
else if(Mark_Pos>=m&&(Mark_Neg+Mark_Zero)>0)
{
ans=Mark_Pos-m;
}
else if(Mark_Pos>=m&&(Mark_Neg+Mark_Zero)==0)
{
ans=-1;
}
else if(Mark_Pos<=m&&Mark_Neg==0)
{
ans=-1;
}
else if(Mark_Pos<=m&&Mark_Neg>(m-Mark_Pos))
{
ans=m-Mark_Pos;
}
else if(Mark_Pos<=m&&Mark_Neg<=(m-Mark_Pos))
{
ans=-1;
}
std::cout<<ans<<std::endl;
}
}