//直接使用find()的话不是单词也可能匹配到
//手动给a,b加空格
//因为a可能在开头和结尾也匹配到,也给原字符串前后加上空格
//最后截掉头尾输出子串
#include<stdio.h>
#include<string>
#include <iostream>
using namespace std;

void tihuan(string& str1, string a,string b) {
	//字符串匹配
	while (str1.find(a) != string::npos) {
		int pos = str1.find(a);//得到匹配位置
		//如果是一模一样的单词
			str1.erase(pos, a.size());//删除原来的字符串单词
			str1.insert(pos, b);//插入替换成的字符串单词}
		
	}
}

int main(){
	string str1;
	string a, b;

	while (getline(cin, str1)) {//输入第一行
		getline(cin, a);//输入被替换的单词
		getline(cin, b);//输入要替换成的单词
        str1 =" "+str1+" ";
        a=" "+a+" ";
        b=" "+b+" ";
		//替换
		tihuan(str1, a, b);
		printf("%s\n", str1.substr(1,str1.size()-1).c_str());
	}
	return 0;
}