#include <iostream> #include <cstring> using namespace std; const int MAX = 1000; int c[MAX+1][MAX+1]; int lcs(char *x, char *y, int c[][MAX+1]){ int m = strlen(x); int n = strlen(y); for(int i = 0; i < m; ++i) c[i][0] = 0; for(int i = 0; i < n; ++i) c[0][i] = 0; for(int i = 0; i < m; ++i){ for(int j = 0; j < n; ++j){ if(x[i] == y[j]) c[i+1][j+1] = c[i][j] + 1; else if(c[i][j+1] >= c[i+1][j]) c[i+1][j+1] = c[i][j+1]; else c[i+1][j+1] = c[i+1][j]; } } return c[m][n]; } int main(){ char x[MAX],y[MAX]; while(cin >> x >> y) cout << lcs(x, y, c) << endl; return 0; }