#include <iostream>
#include <cstring>
using namespace std;
int main() {
char s1[1000], s2[1000], secCom[1000];
cin.getline(s1, 1000);
int lgs1 = strlen(s1);
cin.getline(s2, 1000);
int lgs2 = strlen(s2);
int maxim = 0, lgsecCom = 0, incepSecCom = 0,
maxLit = 0, incepS1 = 0;
for (int i = incepS1; i < lgs1 && lgs1 - i > lgsecCom; ++i){ // doar daca lung. sec. din s1 si s2
for (int j = 0; j < lgs2 && lgs2 - j > lgsecCom; ++j ){ // ramasa de comp. este mai mare decat lg secCom
int nrLit = 0;
if (isalpha(s1[i]) && s1[i] == s2[j]){
incepSecCom = i;
int i1 = i;
while (i1 < lgs1){
if (s1[i1] == s2[j]){ // numaram lit. com. din ambele siruri incepand
++nrLit; // de la pozitiile cu lit egale gasite
++j;
++i1;
}
else {
break;
}
}
if (nrLit > maxLit)
maxLit = nrLit; // retinem nr maxim de lit com la fiecare sec
if (nrLit > maxim){
maxim = nrLit;
lgsecCom = strlen(secCom); // retinem sec max com intr-un sir care se reseteaza de la 0 de fiecare data cand primeste alta secv
for (int i = 0; i < lgsecCom; ++i){
secCom[i] = 0;
}
strncpy(secCom, s1 + incepSecCom, nrLit);
lgsecCom = strlen(secCom); // actualizam lung secCom
}
}
}
incepS1 = incepSecCom + maxLit; // poz de la care se va continua comp. in S1
}
cout << secCom;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewoJY2hhciBzMVsxMDAwXSwgczJbMTAwMF0sIHNlY0NvbVsxMDAwXTsKICAgIGNpbi5nZXRsaW5lKHMxLCAxMDAwKTsKICAgIGludCBsZ3MxID0gc3RybGVuKHMxKTsKICAgIGNpbi5nZXRsaW5lKHMyLCAxMDAwKTsKICAgIGludCBsZ3MyID0gc3RybGVuKHMyKTsKICAgIGludCBtYXhpbSA9IDAsIGxnc2VjQ29tID0gMCwgaW5jZXBTZWNDb20gPSAwLAogICAgbWF4TGl0ID0gMCwgaW5jZXBTMSA9IDA7CiAgICBmb3IgKGludCBpID0gaW5jZXBTMTsgaSA8IGxnczEgJiYgbGdzMSAtIGkgPiBsZ3NlY0NvbTsgKytpKXsgLy8gZG9hciBkYWNhIGx1bmcuIHNlYy4gZGluIHMxIHNpIHMyCiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBsZ3MyICYmIGxnczIgLSBqID4gbGdzZWNDb207ICsraiApeyAvLyByYW1hc2EgZGUgY29tcC4gZXN0ZSBtYWkgbWFyZSBkZWNhdCBsZyBzZWNDb20KICAgICAgICAgICAgaW50IG5yTGl0ID0gMDsKICAgICAgICAgICAgaWYgKGlzYWxwaGEoczFbaV0pICYmIHMxW2ldID09IHMyW2pdKXsKICAgICAgICAgICAgICAgIGluY2VwU2VjQ29tID0gaTsKICAgICAgICAgICAgICAgIGludCBpMSA9IGk7CiAgICAgICAgICAgICAgICB3aGlsZSAoaTEgPCBsZ3MxKXsKICAgICAgICAgICAgICAgICAgICBpZiAoczFbaTFdID09IHMyW2pdKXsgLy8gbnVtYXJhbSBsaXQuIGNvbS4gZGluIGFtYmVsZSBzaXJ1cmkgaW5jZXBhbmQKICAgICAgICAgICAgICAgICAgICAgICAgKytuckxpdDsgICAgICAgICAgICAvLyBkZSBsYSBwb3ppdGlpbGUgY3UgbGl0IGVnYWxlIGdhc2l0ZQogICAgICAgICAgICAgICAgICAgICAgICArK2o7CiAgICAgICAgICAgICAgICAgICAgICAgICsraTE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAobnJMaXQgPiBtYXhMaXQpCiAgICAgICAgICAgICAgICAgICAgbWF4TGl0ID0gbnJMaXQ7ICAgICAvLyByZXRpbmVtIG5yIG1heGltIGRlIGxpdCBjb20gbGEgZmllY2FyZSBzZWMKICAgICAgICAgICAgICAgIGlmIChuckxpdCA+IG1heGltKXsKICAgICAgICAgICAgICAgICAgICBtYXhpbSA9IG5yTGl0OwogICAgICAgICAgICAgICAgICAgIGxnc2VjQ29tID0gc3RybGVuKHNlY0NvbSk7IC8vIHJldGluZW0gc2VjIG1heCBjb20gaW50ci11biBzaXIgY2FyZSBzZSByZXNldGVhemEgZGUgbGEgMCBkZSBmaWVjYXJlIGRhdGEgY2FuZCBwcmltZXN0ZSBhbHRhIHNlY3YKICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxnc2VjQ29tOyArK2kpewogICAgICAgICAgICAgICAgICAgICAgICBzZWNDb21baV0gPSAwOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBzdHJuY3B5KHNlY0NvbSwgczEgKyBpbmNlcFNlY0NvbSwgbnJMaXQpOwogICAgICAgICAgICAgICAgICAgIGxnc2VjQ29tID0gc3RybGVuKHNlY0NvbSk7ICAgLy8gYWN0dWFsaXphbSBsdW5nIHNlY0NvbQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGluY2VwUzEgPSBpbmNlcFNlY0NvbSArIG1heExpdDsgLy8gcG96IGRlIGxhIGNhcmUgc2UgdmEgY29udGludWEgY29tcC4gaW4gUzEKICAgIH0KICAgIGNvdXQgPDwgc2VjQ29tOwoJcmV0dXJuIDA7Cn0=