#include<bits/stdc++.h>

using namespace std;

const int maxn = 1111;

int dp[maxn][maxn]={0};
string a,b;

void LCS(int n,int m)
{
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(a[i-1]==b[j-1]) dp[i][j]=dp[i-1][j-1]+1;
else dp[i][j]=max(dp[i][j-1],dp[i-1][j]);
}

int main()
{
cin>>a>>b;
int l1=a.size(),l2=b.size();
LCS(l1,l2);
int len=dp[l1][l2];
string ans;
int i=l1,j=l2;
while(dp[i][j])
{
if(dp[i][j]==dp[i-1][j]) i--;
else if(dp[i][j]==dp[i][j-1]) j--;
else ans.push_back(a[i-1]),i--,j--;
}
for(int i=len-1;i>=0;i--)
printf("%c",ans[i]);
return 0;
}