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