#define _CRT_SECURE_NO_WARNINGS
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int num[12], na[20], nb[20];
int intlen(ll x)
{
    int len = 0;
    while (x)
        x /= 10, len++;
    return len;
}
int main()
{
    ll a, b;
    scanf("%lld%lld", &a, &b);
    ll q = a;
    while (a)
    {
        int r = a % 10;
        a /= 10;
        num[r]++;
    }
    if (q == b)
    {
        printf("%lld", b);
        return 0;
    }
    int lena = intlen(q);
    int lenb = intlen(b);
    if (lena < lenb)
    {
        for (int j = 9; j >= 0; j--)
        {
            while (num[j])
            {
                num[j]--;
                printf("%d", j);
            }
        }
        return 0;
    }
    if (lena == lenb)
    {
        int temb = lenb;
        while (b)
        {
            int r = b % 10;
            b /= 10;
            nb[temb--] = r;
        }
        for (int i = 1; i <= lena; i++)
        {
            if (num[nb[i]])
            {
                num[nb[i]]--;
                na[i] = nb[i];
            }
            else
            {
                bool fl = 0;
                while (!fl)
                {
                    for (int j = nb[i] - 1; j >= 0; j--)
                    {
                        if (num[j])
                        {
                            na[i] = j;
                            num[j]--;
                            for (int l = 1; l <= i; l++)
                                printf("%d", na[l]);
                            for (int kk = 9; kk >= 0; kk--)
                            {
                                while (num[kk])
                                {
                                    printf("%d", kk);
                                    num[kk]--;
                                }
                            }
                            return 0;
                        }
                    }
                    i = i - 1;
                    num[na[i]]++;
                }
            }
        }
        for (int i = 1; i <= lena; i++)
            printf("%d", na[i]);
    }
    return 0;
}