OI XXVII - pom

// https://szkopul.edu.pl/problemset/problem/K7FKfwLplcsjx-o-BYnJq3b1/site/?key=statement

// Pomniejszenie

#include <bits/stdc++.h>

using namespace std;

#define int long long

constexpr int sizik = 1000 * 1001;

#define ar std::array
#define pr std::pair
#define vec std::vector

typedef vec<vec<int>> _kra;

void solve() {
    std::string A, B;
    int k;
    std::cin >> A >> B >> k;

    int n = (int)A.size();

    std::vector<int> d(n + 1);
    for (int i = 0; i < n; i++) {
        d[i + 1] = d[i];
        if (A[i] != B[i]) d[i + 1]++;
    }

    std::vector<bool> visited(n + 1);

    for (int i = n - 1; i >= 0; i--) {
        for (int c = B[i] - 1; c >= '0'; c--) {
            int adder = (int)(A[i] != c);

            int mini = d[i] + adder;
            int maxi = d[i] + n - i - 1 + adder;

            if (mini <= k && k <= maxi) {
                int op = k;
                for (int j = 0; j < i; j++) {
                    if (A[j] != B[j]) {
                        A[j] = B[j];
                        op--;
                    }
                }
                if (A[i] != c) {
                    A[i] = c;
                    op--;
                }
                for (int j = i + 1; j < n; j++) {
                    if (op > 0 && A[j] != '9') {
                        A[j] = '9';
                        op--;
                        visited[j] = true;
                    }
                }
                for (int j = n - 1; j >= i + 1; j--) {
                    if (op > 0 && !visited[j]) {
                        A[j] = '8';
                        op--;
                    }
                }

                std::cout << A << '\n';
                return;
            }
        }
    }

    std::cout << "-1\n";
}

int32_t main() {
    std::ios_base::sync_with_stdio(0);
    std::cin.tie(0);
    std::cout.tie(0);

    int t = 1;
    std::cin >> t;

    for (; t > 0; t--) {
        solve();
    }

    return 0;
}