#include <bits/stdc++.h>
using namespace std;
int dx[] = {0, 0, 1, -1};
int dy[] = {1, -1, 0, 0};
bool valid(int x, int y) {
    return x >= 0 && y >= 0 && x < 3 && y < 3 ? 1 : 0;
}

int main()
{
    ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    int t;
    cin >> t;
    while (t--) {
        int n, k;
        cin >> n >> k;
        int arr[n];
        for (int i = 0; i < n; ++i) {
            cin >> arr[i];
        }
        sort(arr, arr + n);
        int mx = arr[n - 1], mex = 0;
        for (int i = 0; i < n; ++i) {
            if (mex == arr[i]) {
                ++mex;
            } else {
                break;
            }
        }
        if (k) {
            if (mex > mx) {
                n += k;
            } else {
                int x = mex + mx;
                int y = x / 2;
                y += (x % 2);
                if (!binary_search(arr, arr + n, y)) {
                    ++n;
                }
            }
        }
        cout << n << "\n";
    }

    return 0;
}
