#include<bits/stdc++.h>
using namespace std;
string f[111][111][111];
string Max(string a, string b) {
if(a.length()>b.length()) {
return a;
}
else
{
return b;
}
}
int main() {
string a, b, c;
cin >> a >> b >> c;
int lena = a.length(), lenb = b.length(), lenc = c.length();
for(int i=1; i<=lena; ++i) {
for(int j=1; j<=lenb; ++j) {
for(int k=1; k<=lenc; ++k) {
if(a[i-1] == b[j-1] && b[j-1] == c[k-1]) {
f[i][j][k] = f[i-1][j-1][k-1] + a[i-1];
}
else
{
f[i][j][k] = Max(f[i-1][j][k], Max(f[i][j-1][k], f[i][j][k-1]));
}
}
}
}
cout << f[lena][lenb][lenc];
return 0;
}