#include<bits/stdc++.h>
#define MAXN 10000086
using namespace std;
int sj[MAXN],Next[MAXN];
char s[MAXN],p[MAXN],ans[MAXN];
string ss,tt;
int zh[MAXN],top;
void thenext(char *p,int plen){
Next[0]=0;
Next[1]=0;
for(int i=1;i<plen;i++){
int j=Next[i];
while(j&&p[i]!=p[j])j=Next[j];
if(p[i]==p[j])Next[i+1]=j+1;
else Next[i+1]=0;
}
}
void kmp(char *s,char *p){
int slen=strlen(s),plen=strlen(p);
thenext(p,plen);
int j=0;
for(int i=0;i<slen;i++){
while(j&&s[i]!=p[j])j=Next[j];
if(s[i]==p[j])j++;
zh[++top]=i;
ss[i]=j;
if(j==plen){
top-=plen;
j=ss[zh[top]];
}
}
}
int main(){
cin>>ss;
cin>>tt;
for(int i=0;i<ss.length();i++)s[i]=ss[i];
for(int i=0;i<tt.length();i++)p[i]=tt[i];
kmp(s,p);
for(int i=1;i<=top;i++)
printf("%c",s[zh[i]]);
return 0;
}