#include<bits/stdc++.h>
using namespace std;
int const M=100010;
int to[M];
void getto(char *str){
int i=-1,j=0,len=strlen(str);
to[0]=-1;
while(j<len-1)
if(i==-1||str[i]==str[j]){
i++;
j++;
to[j]=i;
}
else i=to[i];
}
int kmp(char *str1,char *str2){
int i=0,j=0;
int l1=strlen(str1),l2=strlen(str2);
getto(str2);
while(i<l1&&j<l2){
if(j==-1||str1[i]==str2[j]){
i++;
j++;
}
else j=to[j];
}
if(i==l1)
return j;
return 0;
}
int main(){
int i,l1,l2;
char s1[M],s2[M];
while(cin>>s1>>s2){
l1=kmp(s1,s2);
l2=kmp(s2,s1);
if(l1==l2&&strcmp(s1,s2)<0||l1!=l2&&l1>l2)
cout<<s1<<s2+l1<<endl;
else cout<<s2<<s1+l2<<endl;
}
return 0;
}