#include <iostream>
#include <string>
#include <cctype>
using namespace std;
int main() {
string a, b;
getline(cin, a);
getline(cin, b);
string a2, b2;
for(auto i: a){
if(isalpha(i)){
a2.push_back(tolower(i)); //Избавляемся от всех знаков кроме букв и понижаем регистр.
}
}
for(auto i: b){
if(isalpha(i)){
b2.push_back(tolower(i));
}
}
if(a2==b2){
cout << a2; //Если строки равны, сразу возвращаем значение одной из них.
return 0;
}
string c;
for(unsigned int i=0; i<a2.size(); i++){ //Сравниваем символы в строках.
for(unsigned int j=0; j<b2.size(); j++){
if(a2[i]==b2[j]){
c.push_back(a2[i]);
for(unsigned int k=i+1, t=j+1; (k<a2.size())&&(t<b2.size()); k++, t++){
if(a2[k]==b2[t]){
c.push_back(a2[k]); //Те, которые совпали, записываем в новую строку.
} else {
break;
}
}
c.push_back(' ');
}
}
}
unsigned int r=0, max=0; //В получившейся строке считаем, сколько букв в самом большом слове.
string c2, maxstr;
for(unsigned int i=0; i<c.size(); i++){
if(c[i]!=' '){
r++;
} else {
if(r>max){
max=r;
}
r=0;
}
}
for(unsigned int i=0; i<c.size(); i++){ //Ищем слова такой же длины и записываем их в строку для вывода черех пробел.
if(c[i]!=' '){
c2.push_back(c[i]);
} else {
if(c2.size()==max){
for(auto j: c2){
maxstr.push_back(j);
}
maxstr.push_back(' ');
}
c2.clear();
}
}
cout << maxstr;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8Y2N0eXBlPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CglzdHJpbmcgYSwgYjsKCWdldGxpbmUoY2luLCBhKTsKCWdldGxpbmUoY2luLCBiKTsKCXN0cmluZyBhMiwgYjI7Cglmb3IoYXV0byBpOiBhKXsKCQlpZihpc2FscGhhKGkpKXsKCQkJYTIucHVzaF9iYWNrKHRvbG93ZXIoaSkpOyAvL9CY0LfQsdCw0LLQu9GP0LXQvNGB0Y8g0L7RgiDQstGB0LXRhSDQt9C90LDQutC+0LIg0LrRgNC+0LzQtSDQsdGD0LrQsiDQuCDQv9C+0L3QuNC20LDQtdC8INGA0LXQs9C40YHRgtGALgoJCX0KCX0KCWZvcihhdXRvIGk6IGIpewoJCWlmKGlzYWxwaGEoaSkpewoJCQliMi5wdXNoX2JhY2sodG9sb3dlcihpKSk7CgkJfQoJfQoJaWYoYTI9PWIyKXsKCQljb3V0IDw8IGEyOyAvL9CV0YHQu9C4INGB0YLRgNC+0LrQuCDRgNCw0LLQvdGLLCDRgdGA0LDQt9GDINCy0L7Qt9Cy0YDQsNGJ0LDQtdC8INC30L3QsNGH0LXQvdC40LUg0L7QtNC90L7QuSDQuNC3INC90LjRhS4KCQlyZXR1cm4gMDsKCX0KCXN0cmluZyBjOwoJZm9yKHVuc2lnbmVkIGludCBpPTA7IGk8YTIuc2l6ZSgpOyBpKyspeyAvL9Ch0YDQsNCy0L3QuNCy0LDQtdC8INGB0LjQvNCy0L7Qu9GLINCyINGB0YLRgNC+0LrQsNGFLgoJCWZvcih1bnNpZ25lZCBpbnQgaj0wOyBqPGIyLnNpemUoKTsgaisrKXsKCQkJaWYoYTJbaV09PWIyW2pdKXsKCQkJCWMucHVzaF9iYWNrKGEyW2ldKTsKCQkJCWZvcih1bnNpZ25lZCBpbnQgaz1pKzEsIHQ9aisxOyAoazxhMi5zaXplKCkpJiYodDxiMi5zaXplKCkpOyBrKyssIHQrKyl7CgkJCQkJaWYoYTJba109PWIyW3RdKXsKCQkJCQkJYy5wdXNoX2JhY2soYTJba10pOwkvL9Ci0LUsINC60L7RgtC+0YDRi9C1INGB0L7QstC/0LDQu9C4LCDQt9Cw0L/QuNGB0YvQstCw0LXQvCDQsiDQvdC+0LLRg9GOINGB0YLRgNC+0LrRgy4KCQkJCQl9IGVsc2UgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCQljLnB1c2hfYmFjaygnICcpOwoJCQl9CgkJfQoJfQoJdW5zaWduZWQgaW50IHI9MCwgbWF4PTA7IC8v0JIg0L/QvtC70YPRh9C40LLRiNC10LnRgdGPINGB0YLRgNC+0LrQtSDRgdGH0LjRgtCw0LXQvCwg0YHQutC+0LvRjNC60L4g0LHRg9C60LIg0LIg0YHQsNC80L7QvCDQsdC+0LvRjNGI0L7QvCDRgdC70L7QstC1LgoJc3RyaW5nIGMyLCBtYXhzdHI7Cglmb3IodW5zaWduZWQgaW50IGk9MDsgaTxjLnNpemUoKTsgaSsrKXsKCQlpZihjW2ldIT0nICcpewoJCQlyKys7CgkJfSBlbHNlIHsKCQkJaWYocj5tYXgpewoJCQkJbWF4PXI7CgkJCX0KCQkJcj0wOwoJCX0KCX0KCWZvcih1bnNpZ25lZCBpbnQgaT0wOyBpPGMuc2l6ZSgpOyBpKyspeyAvL9CY0YnQtdC8INGB0LvQvtCy0LAg0YLQsNC60L7QuSDQttC1INC00LvQuNC90Ysg0Lgg0LfQsNC/0LjRgdGL0LLQsNC10Lwg0LjRhSDQsiDRgdGC0YDQvtC60YMg0LTQu9GPINCy0YvQstC+0LTQsCDRh9C10YDQtdGFINC/0YDQvtCx0LXQuy4KCQlpZihjW2ldIT0nICcpewoJCQljMi5wdXNoX2JhY2soY1tpXSk7CgkJfSBlbHNlIHsKCQkJCgkJCWlmKGMyLnNpemUoKT09bWF4KXsKCQkJCWZvcihhdXRvIGo6IGMyKXsKCQkJCQltYXhzdHIucHVzaF9iYWNrKGopOwoJCQkJfQoJCQkJbWF4c3RyLnB1c2hfYmFjaygnICcpOwoJCQl9CgkJCWMyLmNsZWFyKCk7CgkJfQoJfQoJY291dCA8PCBtYXhzdHI7CglyZXR1cm4gMDsKfQ==