#include <bits/stdc++.h>
using namespace std;

#define fast_io ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)

#define int long long
#define pb push_back
#define endl '\n'

const int INF = 1e18;

void solve() {

    int a, n;
    cin >> a >> n;

    vector<int> b(n);

    for (int i = 0; i < n; i++)
        cin >> b[i];

    sort(b.begin(), b.end());

    string s = to_string(a);

    int len = s.size();

    int ans = INF;

    auto check = [&](string t) {

        if (t.size() > 1 && t[0] == '0')
            return;

        int num = stoll(t);

        ans = min(ans, abs(a - num));
    };

    string mxsmaller = "";
    bool smaller = false;

    for (int i = 0; i < len; i++) {

        int cur = s[i] - '0';

        int best = -1;

        for (int d : b) {
            if (d < cur)
                best = d;
        }

        if (smaller) {
            mxsmaller += char(b.back() + '0');
        }

        else if (best != -1) {

            mxsmaller += char(best + '0');

            for (int j = i + 1; j < len; j++)
                mxsmaller += char(b.back() + '0');

            smaller = true;

            break;
        }

        else {

            bool equal = false;

            for (int d : b) {
                if (d == cur)
                    equal = true;
            }

            if (equal)
                mxsmaller += s[i];

            else {
                mxsmaller = "";
                break;
            }
        }
    }

    if (!mxsmaller.empty())
        check(mxsmaller);

    string mingreater = "";
    bool greater = false;

    for (int i = 0; i < len; i++) {

        int cur = s[i] - '0';

        int best = 10;

        for (int d : b) {
            if (d > cur) {
                best = d;
                break;
            }
        }

        if (greater) {
            mingreater += char(b[0] + '0');
        }

        else if (best != 10) {

            mingreater += char(best + '0');

            for (int j = i + 1; j < len; j++)
                mingreater += char(b[0] + '0');

            greater = true;

            break;
        }

        else {

            bool equal = false;

            for (int d : b) {
                if (d == cur)
                    equal = true;
            }

            if (equal)
                mingreater += s[i];

            else {
                mingreater = "";
                break;
            }
        }
    }

    if (!mingreater.empty())
        check(mingreater);

    string smalllen = "";

    if (len > 1) {

        int d = -1;

        for (int x : b) {
            if (x != 0) {
                d = x;
                break;
            }
        }

        if (d != -1) {

            smalllen += char(d + '0');

            for (int i = 1; i < len - 1; i++)
                smalllen += char(b.back() + '0');

            check(smalllen);
        }
    }

    string biglen = "";

    int d = -1;

    for (int x : b) {
        if (x != 0) {
            d = x;
            break;
        }
    }

    if (d != -1) {

        biglen += char(d + '0');

        for (int i = 1; i <= len; i++)
            biglen += char(b[0] + '0');

        check(biglen);
    }

    cout << ans << endl;
}

int32_t main() {

    fast_io;

    int t;
    cin >> t;

    while (t--) {
        solve();
    }

    return 0;
}