#include <iostream>
using namespace std;
int main()
{
long long n, k;
cin >> n >> k;
// Numarul de cifre ale lui k
int c = 0;
long long x = k;
while (x > 0)
{
c++;
x /= 10;
}
// Pastram cifrele lui n intr-un vector
int v[11];
int nr = 0;
x = n;
while (x > 0)
{
v[nr] = x % 10;
nr++;
x /= 10;
}
// Cifrele au fost obtinute invers
// Le inversam
for (int i = 0; i < nr / 2; i++)
{
int aux = v[i];
v[i] = v[nr - 1 - i];
v[nr - 1 - i] = aux;
}
// Construim cel mai mare numar cu c cifre
long long maxim = 0;
int poz = 0;
for (int cate = 0; cate < c; cate++)
{
// Trebuie sa alegem o cifra astfel incat
// sa mai ramana suficiente cifre dupa ea.
int limita = nr - (c - cate);
int ceaMaiMare = -1;
int pozMax = poz;
for (int i = poz; i <= limita; i++)
{
if (v[i] > ceaMaiMare)
{
ceaMaiMare = v[i];
pozMax = i;
}
}
maxim = maxim * 10 + ceaMaiMare;
poz = pozMax + 1;
}
if (maxim <= k)
cout << "nu\n";
else
cout << maxim - k << '\n';
cout << maxim << '\n';
return 0;
}