#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
//function to insert element after vTh postion
void cp(char * c,char p,ll v,ll tt)
{
ll z,x;z=v;char cm=p,cn;
for(x=z;x<tt;x++)
{
cn = c[x];
c[x] = cm;
cm =cn;
}
}
//function to insert element after vTh postion
int main(){
ll a,b,c,d,e,f,g,ii,mm,nn,bb,vv,cc,xx,zz,ff;
cin>>ff;
for(g=0;g<ff;g++)
{
cin>>a>>b;
char arr[a+1],arr2[b+1],arr3[a+b+1],arr4[a+b+1];
fflush(stdin);//cin.ignore();
scanf("%s",&arr);
fflush(stdin);
scanf("%s",&arr2);
fflush(stdin);
d=0;c=0;
strcpy(arr3,arr);
strcpy(arr4,arr2);
nn = a;
vv=0;
/* technique
for each element of str2,finding first element in str1 which is equal to element of str2
and inserting it there(say at position 'p') then for next element of str2 finding first element in str1 starting from p
*/
//first case
for(bb=0;bb<b;bb++)
{
xx=0;
for(mm=vv;mm<nn;mm++)
{
if(arr3[mm]==arr2[bb])
{
cp(arr3,arr2[bb],mm+1,nn+1);vv = mm+1;nn++;xx++;break;
}
}
if(xx==0)
{
cp(arr3,arr2[bb],mm,nn+1);vv = mm;nn++;
}
}
//first case
ll nnn;
vv=0;nnn=b;
//second case
for(bb=0;bb<a;bb++)
{xx=0;
for(mm=vv;mm<nnn;mm++)
{ if(arr4[mm]==arr[bb])
{
cp(arr4,arr[bb],mm+1,nnn+1);vv = mm+1;nnn++;xx++;break;
}
}
if(xx==0)
{
cp(arr4,arr[bb],mm,nnn+1);vv = mm;nnn++;
}
}
//second case
//for both case finding ans
char hh=arr3[0];ll bb=1;
for(f=1;f<nn;f++)
{
if(arr3[f]!=arr3[f-1])bb++;
}
char hhh=arr4[0];ll bbb=1;
for(f=1;f<nnn;f++)
{
if(arr4[f]!=arr4[f-1])bbb++;
}
//for both case finding ans
cout<<min(bb,bbb)<<"\n";
//taking min
}}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBsb25nIGxvbmcgaW50IGxsOwoKLy9mdW5jdGlvbiB0byBpbnNlcnQgZWxlbWVudCBhZnRlciB2VGggcG9zdGlvbgp2b2lkIGNwKGNoYXIgKiBjLGNoYXIgcCxsbCB2LGxsIHR0KQp7CiAgICBsbCB6LHg7ej12O2NoYXIgY209cCxjbjsKICAgIGZvcih4PXo7eDx0dDt4KyspCiAgICB7CiAgICAgICAgY24gPSBjW3hdOwogICAgICAgIGNbeF0gPSBjbTsKICAgICAgICBjbSA9Y247CiAgICB9Cn0KLy9mdW5jdGlvbiB0byBpbnNlcnQgZWxlbWVudCBhZnRlciB2VGggcG9zdGlvbgoKaW50IG1haW4oKXsKbGwgYSxiLGMsZCxlLGYsZyxpaSxtbSxubixiYix2dixjYyx4eCx6eixmZjsKY2luPj5mZjsKZm9yKGc9MDtnPGZmO2crKykKewpjaW4+PmE+PmI7CmNoYXIgYXJyW2ErMV0sYXJyMltiKzFdLGFycjNbYStiKzFdLGFycjRbYStiKzFdOwpmZmx1c2goc3RkaW4pOy8vY2luLmlnbm9yZSgpOwpzY2FuZigiJXMiLCZhcnIpOwpmZmx1c2goc3RkaW4pOwpzY2FuZigiJXMiLCZhcnIyKTsKCmZmbHVzaChzdGRpbik7CgpkPTA7Yz0wOwpzdHJjcHkoYXJyMyxhcnIpOwpzdHJjcHkoYXJyNCxhcnIyKTsKCm5uID0gYTsKdnY9MDsKCiAvKiB0ZWNobmlxdWUKIGZvciBlYWNoIGVsZW1lbnQgb2Ygc3RyMixmaW5kaW5nIGZpcnN0IGVsZW1lbnQgaW4gc3RyMSB3aGljaCBpcyBlcXVhbCB0byBlbGVtZW50IG9mIHN0cjIKIGFuZCBpbnNlcnRpbmcgaXQgdGhlcmUoc2F5IGF0IHBvc2l0aW9uICdwJykgdGhlbiBmb3IgbmV4dCBlbGVtZW50IG9mIHN0cjIgZmluZGluZyBmaXJzdCBlbGVtZW50IGluIHN0cjEgc3RhcnRpbmcgZnJvbSBwCiAgICAqLwogIC8vZmlyc3QgY2FzZQpmb3IoYmI9MDtiYjxiO2JiKyspCnsKeHg9MDsKCmZvcihtbT12djttbTxubjttbSsrKQp7CiAgICAgICBpZihhcnIzW21tXT09YXJyMltiYl0pCiAgICB7CiAgICAgICAgY3AoYXJyMyxhcnIyW2JiXSxtbSsxLG5uKzEpO3Z2ID0gbW0rMTtubisrO3h4Kys7YnJlYWs7CiAgICB9Cn0KaWYoeHg9PTApCnsKICAgICAgIGNwKGFycjMsYXJyMltiYl0sbW0sbm4rMSk7dnYgPSBtbTtubisrOwp9Cn0KICAvL2ZpcnN0IGNhc2UKCmxsIG5ubjsKdnY9MDtubm49YjsKCi8vc2Vjb25kIGNhc2UKZm9yKGJiPTA7YmI8YTtiYisrKQp7eHg9MDsKZm9yKG1tPXZ2O21tPG5ubjttbSsrKQp7ICAgaWYoYXJyNFttbV09PWFycltiYl0pCiAgICB7CiAgICAgICAgY3AoYXJyNCxhcnJbYmJdLG1tKzEsbm5uKzEpO3Z2ID0gbW0rMTtubm4rKzt4eCsrO2JyZWFrOwogICAgfQp9CmlmKHh4PT0wKQp7CiAgICAgICBjcChhcnI0LGFycltiYl0sbW0sbm5uKzEpO3Z2ID0gbW07bm5uKys7Cn0KfQoKLy9zZWNvbmQgY2FzZQoKLy9mb3IgYm90aCBjYXNlIGZpbmRpbmcgYW5zCgpjaGFyIGhoPWFycjNbMF07bGwgYmI9MTsKCiAgICBmb3IoZj0xO2Y8bm47ZisrKQogICAgewogICAgICBpZihhcnIzW2ZdIT1hcnIzW2YtMV0pYmIrKzsKICAgIH0KCmNoYXIgaGhoPWFycjRbMF07bGwgYmJiPTE7CmZvcihmPTE7Zjxubm47ZisrKQogICAgewogICAgICBpZihhcnI0W2ZdIT1hcnI0W2YtMV0pYmJiKys7CiAgICB9CgovL2ZvciBib3RoIGNhc2UgZmluZGluZyBhbnMKCmNvdXQ8PG1pbihiYixiYmIpPDwiXG4iOwovL3Rha2luZyBtaW4KfX0K