#include<iostream>
#include<string>
using namespace std;
string s1, s2;
class Tree
{
public:
char c;
Tree *left;
Tree *right;
};
Tree* create()
{
Tree *p = new Tree;
p->left = p->right = NULL;
return p;
}
Tree* huanyuan(int x1, int x2, int y1, int y2)
{
Tree *t = create();
t->c = s1[x1];
for (int j = y1; j <= y2; j++)
{
if (s1[x1] == s2[j])
{
if (j != y1)
t->left = huanyuan(x1 + 1, x1 + j - y1, y1, j - 1);
if (j != y2)
t->right = huanyuan(x1 + j - y1 + 1, x2, j + 1, y2);
break;
}
}
return t;
}
int shendu(Tree *t)
{
if (t == NULL)
return 0;
int m = shendu(t->left);
int n = shendu(t->right);
if (m > n)
return m + 1;
else
return n + 1;
}
int main()
{
int n;
cin >> n;
cin >> s1 >> s2;
Tree *t = huanyuan(0, s1.size() - 1, 0, s2.size() - 1);
cout << shendu(t);
}