#include <bits/stdc++.h>
using namespace std;
using ll = long long int;
#define mod 1000000009LL
#define base 257
const int N = 1000000;
struct hashed_string{
public:
ll n;
vector <ll> prefix;
vector <ll> pow;
hashed_string(){
n = 0;
pow.assign(N+1, 0);
prefix.assign(N+1,0);
pow[0] = 1;
for (int i = 1; i <= N; i++){
pow[i] = (pow[i-1] * base) % mod;
}
}
void addhash(char a){
prefix[n] = ((n >= 1 ? prefix[n-1] * base % mod : 0) + (a - '0')) % mod;
n++;
}
void delhash(ll x){
for (int i = 0; i < x; i++){
n--;
prefix[n] = 0;
}
}
ll get_hash(ll l, ll r){
ll x = prefix[r];
if (l >= 1){
l--;
x = ((x - prefix[l] * pow[r - l] % mod) % mod + mod) % mod;
}
return x;
}
};
void solve(){
string pile;
string target;
hashed_string w;
cin >> pile >> target;
for (auto &p : target){
w.addhash(p);
}
hashed_string cur;
string v;
int p = 0;
for (int i = 0; i < pile.size(); i++){
cur.addhash(pile[i]);
v.push_back(pile[i]);
while (cur.n >= target.size() && cur.get_hash(cur.n - target.size(), cur.n - 1) == w.get_hash(0, w.n - 1)){
cur.delhash(target.size());
for (int j = 0; j < target.size(); j++){
v.pop_back();
}
}
}
cout << v;
}
int main(){
freopen("censor.in","r",stdin);
freopen("censor.out","w",stdout);
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nIGludDsKI2RlZmluZSBtb2QgMTAwMDAwMDAwOUxMCiNkZWZpbmUgYmFzZSAyNTcKY29uc3QgaW50IE4gPSAxMDAwMDAwOwpzdHJ1Y3QgaGFzaGVkX3N0cmluZ3sKICAgIHB1YmxpYzoKICAgIGxsIG47CiAgICB2ZWN0b3IgPGxsPiBwcmVmaXg7CiAgICB2ZWN0b3IgPGxsPiBwb3c7CiAgICBoYXNoZWRfc3RyaW5nKCl7CiAgICAgICAgbiA9IDA7CiAgICAgICAgcG93LmFzc2lnbihOKzEsIDApOwogICAgICAgIHByZWZpeC5hc3NpZ24oTisxLDApOwogICAgICAgIHBvd1swXSA9IDE7CiAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gTjsgaSsrKXsKICAgICAgICAgICAgcG93W2ldID0gKHBvd1tpLTFdICogYmFzZSkgJSBtb2Q7CiAgICAgICAgfQogICAgfQogICAgdm9pZCBhZGRoYXNoKGNoYXIgYSl7CiAgICAgICAgcHJlZml4W25dID0gKChuID49IDEgPyBwcmVmaXhbbi0xXSAqIGJhc2UgJSBtb2QgOiAwKSArIChhIC0gJzAnKSkgJSBtb2Q7CiAgICAgICAgbisrOwogICAgfQogICAgdm9pZCBkZWxoYXNoKGxsIHgpewogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgeDsgaSsrKXsKICAgICAgICAgICAgbi0tOwogICAgICAgICAgICBwcmVmaXhbbl0gPSAwOwogICAgICAgIH0KICAgIH0KICAgIGxsIGdldF9oYXNoKGxsIGwsIGxsIHIpewogICAgICAgIGxsIHggPSBwcmVmaXhbcl07CiAgICAgICAgaWYgKGwgPj0gMSl7CiAgICAgICAgICAgIGwtLTsKICAgICAgICAgICAgeCA9ICgoeCAtIHByZWZpeFtsXSAqIHBvd1tyIC0gbF0gJSBtb2QpICUgbW9kICsgbW9kKSAlIG1vZDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHg7CiAgICB9Cn07CnZvaWQgc29sdmUoKXsKICAgIHN0cmluZyBwaWxlOwogICAgc3RyaW5nIHRhcmdldDsKICAgIGhhc2hlZF9zdHJpbmcgdzsKICAgIGNpbiA+PiBwaWxlID4+IHRhcmdldDsKICAgIGZvciAoYXV0byAmcCA6IHRhcmdldCl7CiAgICAgICAgdy5hZGRoYXNoKHApOwogICAgfQogICAgaGFzaGVkX3N0cmluZyBjdXI7CiAgICBzdHJpbmcgdjsKICAgIGludCBwID0gMDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGlsZS5zaXplKCk7IGkrKyl7CiAgICAgICAgY3VyLmFkZGhhc2gocGlsZVtpXSk7CiAgICAgICAgdi5wdXNoX2JhY2socGlsZVtpXSk7CiAgICAgICAgd2hpbGUgKGN1ci5uID49IHRhcmdldC5zaXplKCkgJiYgY3VyLmdldF9oYXNoKGN1ci5uIC0gdGFyZ2V0LnNpemUoKSwgY3VyLm4gLSAxKSA9PSB3LmdldF9oYXNoKDAsIHcubiAtIDEpKXsKICAgICAgICAgICAgY3VyLmRlbGhhc2godGFyZ2V0LnNpemUoKSk7CiAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdGFyZ2V0LnNpemUoKTsgaisrKXsKICAgICAgICAgICAgICAgIHYucG9wX2JhY2soKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgdjsKfQppbnQgbWFpbigpewogICAgZnJlb3BlbigiY2Vuc29yLmluIiwiciIsc3RkaW4pOwogICAgZnJlb3BlbigiY2Vuc29yLm91dCIsInciLHN0ZG91dCk7CiAgICBzb2x2ZSgpOwogICAgcmV0dXJuIDA7Cn0=