#include<iostream>
#include<cstring>
using namespace std;
const int maxn = 105;
int n,dp[maxn][maxn],len1,len2;
char data1[maxn],data2[maxn];
int val[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 change(char c){
if(c=='A')return 0;
if(c=='C')return 1;
if(c=='G')return 2;
if(c=='T')return 3;
if(c=='-')return 4;
}
int main(){
cin>>n;
while(n--){
cin>>len1>>(data1+1);
cin>>len2>>(data2+1);
memset(dp,0,sizeof(dp));
for(int i=1;i<=len1;i++){
dp[i][0] = dp[i-1][0] + val[change(data1[i])][change('-')];
}
for(int i=1;i<=len2;i++){
dp[0][i] = dp[0][i-1] + val[change('-')][change(data2[i])];
}
for(int i=1;i<=len1;i++){
for(int j=1;j<=len2;j++){
dp[i][j] = max(dp[i-1][j-1]+val[change(data1[i])][change(data2[j])],
max(dp[i][j-1]+val[change('-')][change(data2[j])],
dp[i-1][j]+val[change(data1[i])][change('-')]
));
}
}
cout<<dp[len1][len2]<<endl;
}
return 0;
}