#include<bits/stdc++.h>

using namespace std;
char s[100000],s2[100000],res[100000];
long long dp[100][100],n,m,k,dem=0,i,j;
void nhap(){
	scanf("%s %s", &s, &s2);
	n=strlen(s);
	m=strlen(s2);
}
void comp(){
	for(long long i=0;i<n;i++){
		for(long long j=0;j<m;j++){
			if(s[i]==s2[j]){
				dp[i][j]=1+dp[i-1][j-1];
			}
			else{
				dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
			}
		}
	}
}
/*void print(){
	for(long long i=0;i<n;i++){
		for(long long j=0;j<m;j++){
			printf("%lld ", dp[i][j]);
		}
		printf("\n");
	}
} */
void gay(){
	while(dem>=0){
		if(dp[i][j-1]==dp[i][j]){
			j--;
		}
		else{
			res[dem]=s[j];
			dem--;
			i--;
			j--;
		}
	}
}
void find(){
	k=dem=dp[n-1][m-1];
	i=n-1,j=m-1;
	dem--;	
	if(n>m)
	gay();
	else{
		while(dem>=0){
		if(dp[i][j-1]==dp[i][j]){
			j--;
		}
		else{
			res[dem]=s2[j];
			dem--;
			i--;
			j--;
		}
	}
	}
}
int main(){
	nhap();
	comp();
	//print();
	find();
	puts(res);
	
}
