#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;
    }
}