#include<bits/stdc++.h>
using namespace std;
#define MAX 5000
int dp[MAX][MAX],op[MAX][MAX];
string a,b;
int res(int m, int n)
{
if(dp[m][n] !=0)
return dp[m][n];
if(m == 0)
{
return dp[m][n] = n;
}
if(n == 0)
{
return dp[m][n] = m;
}
if(a[m-1] == b[n-1])
{
return dp[m][n] = res(m-1,n-1);
}
return dp[m][n] = min(min(res(m,n-1),res(m-1,n)),res(m-1,n-1)) + 1;
}
int main()
{
ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int t;
cin>>t;
while(t--)
{
memset(dp,0,sizeof dp);
cin>>a>>b;
int m = a.length(), n = b.length();
assert(m<=MAX and n<=MAX);
cout<<res(m,n)<<endl;
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIE1BWCA1MDAwCmludCBkcFtNQVhdW01BWF0sb3BbTUFYXVtNQVhdOwpzdHJpbmcgYSxiOwoKaW50IHJlcyhpbnQgbSwgaW50IG4pCnsKCWlmKGRwW21dW25dICE9MCkKCXJldHVybiBkcFttXVtuXTsKCglpZihtID09IDApCgl7CgkJcmV0dXJuIGRwW21dW25dID0gbjsKCX0KCglpZihuID09IDApCgl7CgkJcmV0dXJuIGRwW21dW25dID0gbTsKCX0KCglpZihhW20tMV0gPT0gYltuLTFdKQoJewoJCXJldHVybiBkcFttXVtuXSA9IHJlcyhtLTEsbi0xKTsKCX0KCgoJcmV0dXJuIGRwW21dW25dID0gbWluKG1pbihyZXMobSxuLTEpLHJlcyhtLTEsbikpLHJlcyhtLTEsbi0xKSkgKyAxOwp9CgppbnQgbWFpbigpCnsKaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKSxjaW4udGllKDApLGNvdXQudGllKDApOwoKCWludCB0OwoJY2luPj50OwoKCXdoaWxlKHQtLSkKCXsKCQltZW1zZXQoZHAsMCxzaXplb2YgZHApOwoJCWNpbj4+YT4+YjsKCQlpbnQgbSA9IGEubGVuZ3RoKCksIG4gPSBiLmxlbmd0aCgpOwoJCWFzc2VydChtPD1NQVggYW5kIG48PU1BWCk7CgkJY291dDw8cmVzKG0sbik8PGVuZGw7Cgl9Cn0K