#include<cstdio> #include<cstring> const int maxsize=100; char gStrCmp1[maxsize]; char gStrCmp2[maxsize]; int gPath[maxsize][maxsize]; int gLength[maxsize][maxsize]={0}; int main() { scanf("%s %s",gStrCmp1,gStrCmp2); int len1=strlen(gStrCmp1); int len2=strlen(gStrCmp2); int i,j; for(i=1;i<=len1;i++) for(j=1;j<=len2;j++) { if(gStrCmp1[i-1]==gStrCmp2[j-1]) { gLength[i][j]=gLength[i-1][j-1]+1; gPath[i][j]=0; } else { if(gLength[i-1][j]>gLength[i][j-1]) { gLength[i][j]=gLength[i-1][j]; gPath[i][j]=1; } else { gLength[i][j]=gLength[i][j-1]; gPath[i][j]=-1; } } } for(i=len1,j=len2;i&&j&&gLength[i][j];) { if(gPath[i][j]<0) j--; else if(gPath[i][j]>0) i--; else { printf("%c ",gStrCmp1[i-1]); i--; j--; } } return 0; }