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

int main() {
	char s1[2000], s2[2000], secCom[2000], lit[24];
    cin.getline(s1, 2000);
    int lgs1 = strlen(s1);
    cin.getline(s2, 2000);
    int lgs2 = strlen(s2);
    int maxim = 0, lgsecCom = 0, incepSecCom = 0,
    maxLit = 0, incepS1 = 0, k = -1;
    for (int i = incepS1; i < lgs1 && lgs1 - i > lgsecCom; ++i){ // doar daca lung. sec. din s1 si s2
        int cond = 1;
        int nuEste = 1;
        for (int l = 0; l <= k; ++l){ // verificam daca literele s-au gasit in S2
            if (s1[i] == lit[l]){
                cond = 0;
                break;
            }
        }
        if (cond == 1){
            int nrLit;
            for (int j = 0; j < lgs2 && lgs2 - j > lgsecCom && cond == 1; ++j ){ // ramasa de comp. este mai mare decat lg secCom
                nrLit = 0;
                if (isalpha(s1[i]) && s1[i] == s2[j]){
                    nuEste = 0;
                    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
            if (nuEste == 1){               // retinem intr-un sir lit. care nu se gasesc in S2
                ++k;
                lit[k] = s1[i];
            }
        }
    }
    cout << secCom;
	return 0;
}