#include <bits/stdc++.h>
using namespace std;
int dx[] = {1, 2, 1, -1, -2, 2, -1, -2};
int dy[] = {2, 1, -2, 2, 1, -1, -2, -1};
const int MOD = 1e9 + 7;
long long power(long long x, long long y) {
  if (y == 0) return 1;
  long long s = power(x, y / 2);
  s *= s;
  if (y & 1) s *= x;
  return s;
}
long long Ceil(long long x, long long y) { return (x + y - 1) / y; }
bool has_zero(long long x) {
  while (x != 0) {
    int dig = x % 10;
    x /= 10;
    if (dig == 0) return 1;
  }
  return 0;
}
int get_min(long long x) {
  int mn = 10;
  while (x != 0) {
    int dig = x % 10;
    x /= 10;
    mn = min(mn, dig);
  }
  return mn;
}
int get_max(long long x) {
  int mx = 0;
  while (x != 0) {
    int dig = x % 10;
    x /= 10;
    mx = max(mx, dig);
  }
  return mx;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int T;
  cin >> T;
  while (T--) {
    long long n, k;
    cin >> n >> k;
    int i = 1;
    while (!has_zero(n) && i < k) {
      i++;
      n += get_min(n) * get_max(n);
    }
    cout << n << "\n";
  }
  cin.get();
}
