while True:
    try:
        str_1 = input()
        str_1_list = list(str_1)
        str_2 = input()
        str_2_list = list(str_2)
        len_1 = len(str_1)
        len_2 = len(str_2)
        a = []
        result = 0
        for i in range(len_1 + 1):
            b = []
            for j in range(len_2 + 1):
                b.append(0)
            a.append(b)
        for i in range(1,len_1 + 1):
            for j in range(1,len_2 + 1):
                if(str_1[i - 1] == str_2[j - 1]):
                    a[i][j] = a[i - 1][j - 1] + 1
                    result = max(result,a[i][j]) #result即为子串的最大长度(不止一个),我们需要在短串上的第一个子串
        x_index = 0
        y_index = 0
        flag = 0
        b = []
        for i in range(1,len_1 + 1):
            for j in range(1,len_2 + 1):
                if(a[i][j] == result):
                    x_index = i
                    y_index = j
                    b.append([i,j]) #所有的最大子串在a中的位置
                    
        target_index = 0
        if(len_1 <= len_2):#若第一个输入的串短
            b.sort(key = lambda ele:ele[0]) #按位置排序
            print(''.join(str_1_list[b[0][0] - result:b[0][0]])) #输出
        else:
            b.sort(key = lambda ele:ele[1])
            print(''.join(str_2_list[b[0][1] - result:b[0][1]]))
    except:
        break