1 #include<iostream>
2 #include<string.h>
3 #include<string>
4 using namespace std;
5 int maxlen[102][102];
6 void lsc(string a,string b){
7 for(int i=1;i<=a.length();i++){
8 for(int j=1;j<=b.length();j++){
9 if(a[i-1]==b[j-1])
10 maxlen[i][j]=maxlen[i-1][j-1]+1;
11 else
12 if(maxlen[i-1][j]>=maxlen[i][j-1])
13 maxlen[i][j]=maxlen[i-1][j];
14 else
15 maxlen[i][j]=maxlen[i][j-1];
16 }
17 }
18 }
19 int main(){
20 string s1,s2;
21 int num=1;
22 while(getline(cin,s1)){
23 memset(maxlen,0x0,sizeof(maxlen));
24 if(s1=="#")
25 break;
26 getline(cin,s2);
27 lsc(s1,s2);
28 cout<<"Case #"<<num++<<": you can visit at most "<<maxlen[s1.length()][s2.length()]<<" cities."<<endl;
29 }
30 }