#include<bits/stdc++.h>
using namespace std;
#define int long long
int f[3005][3005];
signed main(){
    string s,t;
    cin >> s >> t;
    int n = s.size(), m = t.size();
    s = " " + s;
    t = " " + t;
    for(int i = 1; i <= n; i++){
        for(int j = 1; j <= m; j++){
            f[i][j] = max(f[i-1][j], f[i][j-1]);
            if(s[i] == t[j]) f[i][j] = max(f[i][j], f[i-1][j-1] + 1);
        }
    }
    int i = n, j = m;
    string ans;
    while(i > 0 && j > 0){
        if(s[i] == t[j]){
            ans += s[i];
            i--, j--;
        }
        else if(f[i-1][j] >= f[i][j-1]) i--;
        else j--;
    }

    reverse(ans.begin(), ans.end());
    cout << ans << "\n";
    return 0;
}