#include <bits/stdc++.h>
#define TAM 300

using namespace std;

int main(){
	
	string s1, s2;

	getline(cin,s1);
	getline(cin,s2);

	int M[TAM][TAM] = {0};

	for(int i=1; i<=s1.size(); i++){
		for(int j=1; j<=s2.size(); j++){
			if(s1[i-1]==s2[j-1]){
				M[i][j] = M[i-1][j-1]+1;
			} else {
				M[i][j] = max(M[i-1][j],M[i][j-1]);
			}
			//printf("%d ", M[i][j]);
		}
		//printf("\n");
	}

	int i=s1.size();
	int j=s2.size();
	string s="";

	while(i>0 && j>0){
		if(M[i][j]-1==M[i-1][j-1]){
			s += s1[i-1];
			i--;
			j--;
		} else {
			i--;
		}
	}

	for(i=s.size()-1; i>=0; i--){
		printf("%c", s[i]);
	}
	printf("\n");

	return 0;
}