#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
char s[500005];
char t[500005];
int nxt[500005];
void getn(char* p,int len)
{
nxt[0]=-1;
int i=0,j=-1;
while(i<len)
{
if(j==-1 || p[i]==p[j])
{
i++;j++;
nxt[i]=j;
}
else
j=nxt[j];
}
}
int main() {
while(~scanf("%s",s))
{
scanf("%s",t);
int len1=strlen(s),len2=strlen(t);
getn(t,len2);
int tp=nxt[len2];
int s1=0,s0=0,t1=0,t0=0,d1=0,d0=0;
for(int i=0;i<len1;i++)
if(s[i]=='1')
s1++;
else
s0++;
for(int i=0;i<len2;i++)
if(t[i]=='1')
t1++;
else
t0++;
for(int i=0;i<tp;i++)
if(t[i]=='1')
d1++;
else
d0++;
d1=t1-d1;d0=t0-d0;
if(!(s1<t1 || s0<t0))
{
s1-=t1;s0-=t0;
cout<<t;
while(s1>=d1 && s0>=d0)
{
s1-=d1;s0-=d0;
for(int i=tp;i<len2;i++)
printf("%c",t[i]);
}
}
while(!s1==0)
cout<<'1',s1--;
while(!s0==0)
cout<<'0',s0--;
cout<<endl;
}
return 0;
}