#include<bits/stdc++.h>
using namespace std;
void lcs(string s1, string s2){
int n=s1.length();
int m=s2.length();
int dp[n+1][m+1];
for(int i=0;i<=n;i++){
for(int j=0;j<=m;j++){
dp[i][j]=0;
}
}
for(int i=n-1;i>=0;iā){
for(int j=m-1;j>=0;jā){
if(s1[i]==s2[j]){
dp[i][j]=1+dp[i+1][j+1];
}
else{
int op1=dp[i+1][j];
int op2=dp[i][j+1];
dp[i][j]=max(op1,op2);
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(dp[i][j]-dp[i+1][j]==1 && dp[i][j]-dp[i][j+1]==1){
if(s1[i]==s2[j])
cout<<s1[i];
}
}
}
}
int main() {
string s1;
string s2;
cin>>s1>>s2;
lcs(s1,s2);
return 0;
}