#include <bits/stdc++.h>
#define FAST {ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);}
#define FILES {freopen("input.txt", "r", stdin);freopen("output.txt", "w", stdout);}
#define ll long long
#define ull unsigned long long
#define pqueue priority_queue
#define pb push_back
#define fi first
#define se second
#define ld long double
#define pii pair<int,int>
#define pll pair<long long,long long>
#define all(a) (a).begin(), (a).end()
#define mp make_pair 
using namespace std;
/*
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;

#define ordered_set tree<pll, null_type,less<pll>, rb_tree_tag,tree_order_statistics_node_update>
*/
// order_of_key -> # less than k
// find_by_order -> k-th element
// pq max element                                          

void files() {
    #ifndef ONLINE_JUDGE
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout);
    #endif
}

const double eps = 0.00000001;
const ll NMAX = 1e6+10;
const ll inf = 1e16;
const ll modi = 1e9+7;

int sz(int n) {
    int c = 0;
    while(n){
        c++;
        n/=10;
    }
    return c;
}

void solve() {
    int a,b;
    cin >> a >> b;
    int sa = sz(a);
    int sb = sz(b);
    int s = max(sa,sb);

    int l = 1;
    for (int i = 1 ; i < s ; i++ ) l*=10;

    for (int i = s-1; i >= 0 ; i--) {
        int aa = (a/l)%10;
        int bb = (b/l)%10;
        l/=10;
        if (aa==bb && i < min(sa,sb)) {
            cout << aa << aa;
        }
        else cout << max(aa,bb);
    }
} 

int main () { 
    FAST
    int t=1;

    /*
    cin >> t;
    //*/

    int i = 1;
    while(t--) {
        //cout << "Case #" << i++ << ": " ;
        solve();
    }
}