#include <iostream>

using namespace std;

int main() {
  long long x,y;
  cin>>x>>y;
  long long bx=0,by=0,x1=x,y1=y;
  while(x1>0){
    x1=x1/10;
    bx++;
  }
  while(y1>0){
    y1=y1/10;
    by++;
  }
  if(bx>=by){
    long long nizx[bx],nizy[bx],x2=x,y2=y,br=0;
    long long niz[bx+by];
    for(int i=0;i<bx;i++){
      nizx[i]=x2%10;
      x2=x2/10;
    }
    for(int j=0;j<by;j++){
        nizy[j]=y2%10;
        y2=y2/10;
    }
    for(int q=by;q<bx;q++){
      nizy[q]=0;
    }
    int k=0;
    for(int p=0;p<bx;p++){
      int f=p;
      if(nizx[f]<nizy[f]){
        niz[k]=nizy[f];
        k++;
        br++;
      }
      else if(nizx[f]==nizy[f] && nizy[f]!=0){
        niz[k]=nizx[f];
        niz[k+1]=nizx[f];
        k+=2;
        br+=2;
      }
      else{
        niz[k]=nizx[f];
        k++;
        br++;
      }
    }
    for(int u=br-1;u>=0;u--){ 
      cout<< niz[u] ;
    }
  }
  else {
    long long nizx[by],nizy[by],x2=x,y2=y,br=0;
    long long niz[bx+by];
    for(int i=0;i<by;i++){
      nizy[i]=y2%10;
      y2=y2/10;
    }
    for(int j=0;j<bx;j++){
        nizx[j]=x2%10;
        x2=x2/10;
    }
    for(int q=bx;q<by;q++){
      nizx[q]=0;
    }
    int k=0;
    for(int p=0;p<by;p++){
      int f=p;
      if(nizx[f]<nizy[f]){
        niz[k]=nizy[f];
        k++;
        br++;
      }
      else if(nizx[f]==nizy[f] && nizx[f]!=0){
        niz[k]=nizx[f];
        niz[k+1]=nizx[f];
        k+=2;
        br+=2;
      }
      else{
        niz[k]=nizx[f];
        k++;
        br++;
      }
    }
    for(int u=br-1;u>=0;u--){ 
      cout<< niz[u] ;
    }
  }
  return 0;
}