#include <iostream>
#include<algorithm>
#include<string>
#include <stack>

using namespace std;

int main()
{
    string n, m;

    stack<int> prviBroj;
    stack<int> drugiBroj;
    stack<int> noviBroj;

    cin >> n >> m;

    int duzinaNajveceg = max(n.length(), m.length());

    for(int i = 0; i < duzinaNajveceg; i++)
    {
        if(i < n.length())
            prviBroj.push((int)n[i] - 48);
        if(i < m.length())
            drugiBroj.push((int)m[i] - 48);
    }

    for(int i = duzinaNajveceg; i > 0; i--)
    {
        if(prviBroj.size() > 0 && drugiBroj.size() > 0)
        {
            int a = prviBroj.top();
            int b = drugiBroj.top();
            if(a != b)
                noviBroj.push(max(a, b));
            else
            {
                noviBroj.push(a);
                noviBroj.push(a);
            }

            prviBroj.pop();
            drugiBroj.pop();
        }
        else if(prviBroj.size() == 0)
        {
            noviBroj.push(drugiBroj.top());
            drugiBroj.pop();
        }
        else if(drugiBroj.size() == 0)
        {
            noviBroj.push(prviBroj.top());
            prviBroj.pop();
        }
    }

    while(noviBroj.size() != 0)
    {
        cout << noviBroj.top();
        noviBroj.pop();
    }

    return 0;
}