import os, sys

#dynamic programming to compute largest common subsequence between s1, s2
#only return the length, not much work to trace back the solution.
def subseq(s1,s2):
    scores = [[]]*len(s1)
    
    for i in xrange(len(s1)-1, -1, -1):
        scores[i] = [0]*len(s2)
        for j in xrange(len(s2)-1,-1,-1):
            maxscore = 0
            if s1[i] == s2[j]:
                score = 1                
                if ((i+1)<len(s1)) & ((j+1)<len(s2)): 
                    score += scores[i+1][j+1]
                maxscore = max(maxscore, score)
            if (i+1)<len(s1):
                maxscore = max(maxscore, scores[i+1][j])
            if (j+1)<len(s2):
                maxscore = max(maxscore, scores[i][j+1])     

            scores[i][j] = maxscore

    return scores[0][0]

#Run with a file containing the entries to compare on subsequent lines
file = file(sys.argv[1],"r");

while True:
    s1 = file.readline().replace('\n','')
    s2 = file.readline().replace('\n','')
    
    if((s1 == '') | (s2 == '')):break

    print s1, s2
    print 'result:', subseq(s1,s2)

