#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'

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());

    int original = a;

    vector<int> A;

    if (a == 0)
        A.pb(0);

    while (a > 0) {
        A.pb(a % 10);
        a /= 10;
    }

    reverse(A.begin(), A.end());

    int k = A.size();

    int mn = b[0];
    int mx = b.back();

    int p = 0, q = 0;

    for (int i = 0; i < k; i++) {
        p = p * 10 + mn;
        q = q * 10 + mx;
    }

    int ans = min(abs(original - p), abs(original - q));

    int r = 0;

    bool done = false;

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

        int cur = A[i];

        int smaller = -1;

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

        if (smaller != -1) {

            int temp = r;

            temp = temp * 10 + smaller;

            for (int j = i + 1; j < k; j++)
                temp = temp * 10 + mx;

            if (!(to_string(temp).size() > 1 && to_string(temp)[0] == '0'))
                ans = min(ans, abs(original - temp));
        }

        bool equal = false;

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

        if (!equal) {
            done = true;
            break;
        }

        r = r * 10 + cur;
    }

    int s = 0;

    done = false;

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

        int cur = A[i];

        int greater = -1;

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

        if (greater != -1) {

            int temp = s;

            temp = temp * 10 + greater;

            for (int j = i + 1; j < k; j++)
                temp = temp * 10 + mn;

            if (!(to_string(temp).size() > 1 && to_string(temp)[0] == '0'))
                ans = min(ans, abs(original - temp));
        }

        bool equal = false;

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

        if (!equal) {
            done = true;
            break;
        }

        s = s * 10 + cur;
    }

    int firstNonZero = -1;

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

    if (k > 1 && firstNonZero != -1) {

        int small = firstNonZero;

        for (int i = 1; i < k - 1; i++)
            small = small * 10 + mx;

        ans = min(ans, abs(original - small));
    }

    if (firstNonZero != -1) {

        int big = firstNonZero;

        for (int i = 0; i < k; i++)
            big = big * 10 + mn;

        ans = min(ans, abs(original - big));
    }

    cout << ans << endl;
}

int32_t main() {

    fast_io;

    int t;
    cin >> t;

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

    return 0;
}