#include <iostream>
#include <string>
using namespace std;

int main() 
{
	int n, m, z;
	string a, b, c, d;
	cin>>a; // Вводим строку A
	cin>>b; // Вводим строку B
	d = b; // Строку B будем хранить в переменной d
	n = b.length(); // В переменной n храним длину строки B
	m = a.length(); // В переменной m храним длину строки A
	c = a.substr(m - n, n); // Создаём подстроку
	if(a.find(b) == EOF) // Ищем в строке A строку B
	{
		for (int i = 1; i<=n && b != c; i++) // Удаляем символы в конце первой строки и начале второй, пока они не будут равны
		{
			b.erase(n - i,1);  
			c.erase(0, 1);
		}
		z = c.length(); // В переменной z храним длину подстроки
		d.erase(0,z); // Удаляем из строки B элементы подстроки
		cout << a + d; // Выводим такую строку, которая содержит в себе и A и B
	}
	else cout << a; // Выводим строку A
	return 0;
}