#include<bits/stdc++.h>
using namespace std;
int main(){
    long long t;
    cin>>t;
    while(t--){
    long long  n,k,i,k1,cnt=0,mex=0,max=0,e=0;
      cin>>n>>k;
      
      vector<long long> v;
      set<long long> st;
      for(i=0; i<n; i++){
        cin>>k1;
        v.push_back(k1);
        st.insert(k1);
      }
      sort(v.begin(),v.end());
      if(k==0){
cout<<st.size()<<endl;
      }
      else{
      for(i=1; i<n; i++){
         if(v[i]-v[i-1] != 1){
            mex = v[i-1] +1;
            break;
         }
         else{
             cnt++;
         }
      }
   
      if(cnt==n-1){
        if(v[0]==1){
           mex =0;
        }
        else {
            if(n==1 && v[0]>0){
                mex =0;
            }
            else{
                mex = v[n-1] +1;
            }
        }
      }
      max = v[n-1];
    // cout<<mex<<" "<<max<<endl;
      if(mex<=max){
       if((mex+max)%2==0){
          e = (mex+max)/2;
       }
       else{
         e = ((mex+max)/2)+1;
       }
        st.insert(e);
        cout<<st.size()<<endl;
      }
      else if(mex>max){
        
        cout<<st.size()+k<<endl;
      }
      }
    }
    return 0;
}
