#include <bits/stdc++.h>
using namespace std;
const int N = 5000 + 10;
int id[N];
int f[N][N];
int s[5][5]=
{
{5,-1,-2,-1,-3},
{-1,5,-3,-2,-4},
{-2,-3,5,-2,-2},
{-1,-2,-2,5,-1},
{-3,-4,-2,-1,0}
};
int main()
{
int n, m;
string a, b;
cin >> n >> a;
cin >> m >> b;
a = " " + a;
b = " " + b;
id['A'] = 0, id['C'] = 1, id['G'] = 2, id['T'] = 3, id['-'] = 4;
memset(f, 0x3f, sizeof(f));
for (int i = 1; i <= n; i++) f[i][0] = f[i-1][0] + s[id[a[i]]][id['-']];
for (int i = 1; i <= m; i++) f[0][i] = f[i-1][0] + s[id['-']][id[b[i]]];
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
f[i][j] = max(f[i][j], f[i-1][j-1] + s[id[a[i]]][id[b[j]]]);
f[i][j] = max(f[i][j], f[i-1][j] + s[id[a[i]]][id['-']]);
f[i][j] = max(f[i][j], f[i][j-1] + s[id['-']][id[b[j]]]);
}
}
cout << f[n][m] << endl;
return 0;
}