// 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;
}