#include<bits/stdc++.h>
#define int long long
#define mod 1000000007
using namespace std;
int h1[1011],h2[1011],has[1011],n,m,dp[1011][1011],k;
string s,ss ;
int bigmod(int a , int b)
{
if(b == 0) return 1%mod ;
int x = bigmod(a,b/2) ;
x = ((x%mod)*(x%mod))%mod ;
if(b%2) x = ((x%mod)*(a%mod))%mod ;
return x ;
}
int fun(int i1 , int i2)
{
if(i1==n || i2==m) return 0 ;
if(dp[i1][i2]!=-1) return dp[i1][i2] ;
int fl=0,ct=0 ;
if(s[i1]==ss[i2])
{
int lo=1,hi=min(n-i1,m-i2) ; ct=1 ;
int md=(lo+hi)/2 ;
while(lo<=hi)
{
int x,y ;
int md=(lo+hi)/2 ;
if(i1==0) x=h1[i1+md-1] ;
else x=((h1[i1+md-1]-h1[i1-1]+mod)%mod)*has[i1] ; x%=mod ;
if(i2==0) y=h2[i2+md-1] ;
else y=((h2[i2+md-1]-h2[i2-1]+mod)%mod)*has[i2] ; y%=mod ;
// cout<<lo<<" "<<hi<<" "<<md<<" "<<x<<" "<<y<<endl ;
if(x==y) {ct=md ; lo=md+1 ; }
else hi=md-1 ;
}
if(ct>=k) fl=1 ;
}
int as=0 ;
if(ct>=k) as=ct+fun(i1+ct,i2+ct) ;
int x=fun(i1+1,i2) , y=fun(i1,i2+1) ;
return dp[i1][i2]=max(max(x,y),as) ;
}
int32_t main()
{
int iv=bigmod(53,mod-2) ;//cout<<iv<<endl ;
has[0]=1 ;
for(int i = 1 ; i <= 1008 ; i++) has[i]=(has[i-1]*iv)%mod ;
//for(int i = 0 ; i < 6 ; i++) cout<<has[i]<<" " ; cout<<endl ;
while(cin>>k,k)
{
cin>>s>>ss ; n=s.size() ; m=ss.size() ;
for(int i = 0 ; i < n ; i++) for(int j = 0 ; j < m ; j++) dp[i][j]=-1 ;
for(int i = 0 ; i < n ; i++) h1[i]=0 ;
for(int i = 0 ; i < m ; i++) h2[i]=0 ;
int vl=1 ;
for(int i = 0 ; i < n ; i++)
{
int x=s[i]-'a'+1 ;
h1[i]=(x*vl%mod)%mod ; vl*=53 ; vl%=mod ;
if(i!=0) h1[i]+=h1[i-1] ;
}
vl=1 ;
for(int i = 0 ; i < m ; i++)
{
int x=ss[i]-'a'+1 ;
h2[i]=(x*vl%mod)%mod ; vl*=53 ; vl%=mod ;
if(i!=0) h2[i]+=h2[i-1] ;
}
//for(int i = 0 ; i < n ; i++) cout<<h1[i]<<" " ; cout<<endl ;
//for(int i = 0 ; i < m ; i++) cout<<h2[i]<<" " ; cout<<endl ;
int mx=fun(0,0) ;
cout<<mx<<endl ;
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgbW9kIDEwMDAwMDAwMDcKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IGgxWzEwMTFdLGgyWzEwMTFdLGhhc1sxMDExXSxuLG0sZHBbMTAxMV1bMTAxMV0sazsKc3RyaW5nIHMsc3MgOwppbnQgYmlnbW9kKGludCBhICwgaW50IGIpCnsKICAgIGlmKGIgPT0gMCkgcmV0dXJuIDElbW9kIDsKICAgIGludCB4ID0gYmlnbW9kKGEsYi8yKSA7CiAgICB4ID0gKCh4JW1vZCkqKHglbW9kKSklbW9kIDsKICAgIGlmKGIlMikgeCA9ICgoeCVtb2QpKihhJW1vZCkpJW1vZCA7CiAgICByZXR1cm4geCA7Cn0KaW50IGZ1bihpbnQgaTEgLCBpbnQgaTIpCnsKICAgIGlmKGkxPT1uIHx8IGkyPT1tKSByZXR1cm4gMCA7CiAgICBpZihkcFtpMV1baTJdIT0tMSkgcmV0dXJuIGRwW2kxXVtpMl0gOwogICAgaW50IGZsPTAsY3Q9MCA7CiAgICBpZihzW2kxXT09c3NbaTJdKQogICAgewogICAgICAgIGludCBsbz0xLGhpPW1pbihuLWkxLG0taTIpIDsgY3Q9MSA7CiAgICAgICAgaW50IG1kPShsbytoaSkvMiA7CiAgICAgICAgd2hpbGUobG88PWhpKQogICAgICAgIHsKICAgICAgICAgICAgaW50IHgseSA7CiAgICAgICAgICAgIGludCBtZD0obG8raGkpLzIgOwogICAgICAgICAgICBpZihpMT09MCkgeD1oMVtpMSttZC0xXSA7CiAgICAgICAgICAgIGVsc2UgeD0oKGgxW2kxK21kLTFdLWgxW2kxLTFdK21vZCklbW9kKSpoYXNbaTFdIDsgeCU9bW9kIDsKICAgICAgICAgICAgaWYoaTI9PTApIHk9aDJbaTIrbWQtMV0gOwogICAgICAgICAgICBlbHNlIHk9KChoMltpMittZC0xXS1oMltpMi0xXSttb2QpJW1vZCkqaGFzW2kyXSA7IHklPW1vZCA7CiAgICAgICAgICAgLy8gY291dDw8bG88PCIgIjw8aGk8PCIgIjw8bWQ8PCIgIjw8eDw8IiAiPDx5PDxlbmRsIDsKICAgICAgICAgICAgaWYoeD09eSkge2N0PW1kIDsgbG89bWQrMSA7IH0KICAgICAgICAgICAgZWxzZSBoaT1tZC0xIDsKICAgICAgICB9CiAgICAgICAgaWYoY3Q+PWspIGZsPTEgOwogICAgfQogICAgaW50IGFzPTAgOwogICAgaWYoY3Q+PWspIGFzPWN0K2Z1bihpMStjdCxpMitjdCkgOwogICAgaW50IHg9ZnVuKGkxKzEsaTIpICwgeT1mdW4oaTEsaTIrMSkgOwogICAgcmV0dXJuIGRwW2kxXVtpMl09bWF4KG1heCh4LHkpLGFzKSA7Cn0KaW50MzJfdCBtYWluKCkKewogICAgaW50IGl2PWJpZ21vZCg1Myxtb2QtMikgOy8vY291dDw8aXY8PGVuZGwgOwogICAgaGFzWzBdPTEgOwogICAgZm9yKGludCBpID0gMSA7IGkgPD0gMTAwOCA7IGkrKykgaGFzW2ldPShoYXNbaS0xXSppdiklbW9kIDsKICAgIC8vZm9yKGludCBpID0gMCA7IGkgPCA2IDsgaSsrKSBjb3V0PDxoYXNbaV08PCIgIiA7IGNvdXQ8PGVuZGwgOwogICAgd2hpbGUoY2luPj5rLGspCiAgICB7CiAgICAgICAgY2luPj5zPj5zcyA7IG49cy5zaXplKCkgOyBtPXNzLnNpemUoKSA7CiAgICAgICAgZm9yKGludCBpID0gMCA7IGkgPCBuIDsgaSsrKSBmb3IoaW50IGogPSAwIDsgaiA8IG0gOyBqKyspIGRwW2ldW2pdPS0xIDsKICAgICAgICBmb3IoaW50IGkgPSAwIDsgaSA8IG4gOyBpKyspIGgxW2ldPTAgOwogICAgICAgIGZvcihpbnQgaSA9IDAgOyBpIDwgbSA7IGkrKykgaDJbaV09MCA7CiAgICAgICAgaW50IHZsPTEgOwogICAgICAgIGZvcihpbnQgaSA9IDAgOyBpIDwgbiA7IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIGludCB4PXNbaV0tJ2EnKzEgOwogICAgICAgICAgICBoMVtpXT0oeCp2bCVtb2QpJW1vZCA7IHZsKj01MyA7IHZsJT1tb2QgOwogICAgICAgICAgICBpZihpIT0wKSBoMVtpXSs9aDFbaS0xXSA7CiAgICAgICAgfQogICAgICAgIHZsPTEgOwogICAgICAgIGZvcihpbnQgaSA9IDAgOyBpIDwgbSA7IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIGludCB4PXNzW2ldLSdhJysxIDsKICAgICAgICAgICAgaDJbaV09KHgqdmwlbW9kKSVtb2QgOyB2bCo9NTMgOyB2bCU9bW9kIDsKICAgICAgICAgICAgaWYoaSE9MCkgaDJbaV0rPWgyW2ktMV0gOwogICAgICAgIH0KICAgICAgICAvL2ZvcihpbnQgaSA9IDAgOyBpIDwgbiA7IGkrKykgY291dDw8aDFbaV08PCIgIiA7IGNvdXQ8PGVuZGwgOwogICAgICAgIC8vZm9yKGludCBpID0gMCA7IGkgPCBtIDsgaSsrKSBjb3V0PDxoMltpXTw8IiAiIDsgY291dDw8ZW5kbCA7CiAgICAgICAgaW50IG14PWZ1bigwLDApIDsKICAgICAgICBjb3V0PDxteDw8ZW5kbCA7CiAgICB9Cn0K
Mwpsb3Z4eGVseXh4eHh4Cnh4eHh4eHhsb3ZlbHkKMQpsb3Z4eGVseXh4eHh4Cnh4eHh4eHhsb3ZlbHkKMwpsb3Z4eHhlbHh5eHh4eAp4eHhsb3ZlbHl4eHh4eHh4CjQKbG92eHh4ZWx5eHh4Cnh4eHh4eGxvdmVseQozCmJhYWFhCmJhYWEKNAphZ2dhc2RmYQphZ2dhamFzZGZhCjIKYWFiCmFhYWIKMgphYWJjCmFhZGJjCjUKY2FiY2RlYWJjZGVmZwpjYWJjZGVmZwoyCmFiYwphYmJjCjMKcHFyegpwcXJwcXJ6CjQKYWdnYXNkZmEKYWdnYWthc2RmYQow
3
lovxxelyxxxxx
xxxxxxxlovely
1
lovxxelyxxxxx
xxxxxxxlovely
3
lovxxxelxyxxxx
xxxlovelyxxxxxxx
4
lovxxxelyxxx
xxxxxxlovely
3
baaaa
baaa
4
aggasdfa
aggajasdfa
2
aab
aaab
2
aabc
aadbc
5
cabcdeabcdefg
cabcdefg
2
abc
abbc
3
pqrz
pqrpqrz
4
aggasdfa
aggakasdfa
0