func_code_string: #include <bits/stdc++.h>   using namespace std;   ostream& operator<<(ostream& a, const vector<int>& b) {     for (auto k : b) cout << k <<    ;     return a;   }   istream& operator>>(istream& a, pair<int, int>& b) {     cin >> b.first >> b.second;     return a;   }   ostream& operator<<(ostream& a, const pair<int, int>& b) {     cout <<  {  << b.first <<  ,   << b.second <<  } ;     return a;   }   template <typename T1, typename T2>   inline void chkmin(T1& x, const T2& y) {     if (x > y) x = y;   }   template <typename T1, typename T2>   inline void chkmax(T1& x, const T2& y) {     if (x < y) x = y;   }   const int INF = 1e9;   mt19937 gen(chrono::high_resolution_clock::now().time_since_epoch().count());   const int MAXN = 2001;   int n;   int dp[MAXN][MAXN];   vector<vector<int>> prefs, preft;   string s, t;   bool have(int i, int j, char k) {     if (j == 0) return preft[i - 1][k -  a ];     return preft[i - 1][k -  a ] - prefs[j - 1][k -  a ];   }   void solve() {     cin >> n;     cin >> s >> t;     prefs.assign(n, vector<int>(26, 0));     preft.assign(n, vector<int>(26, 0));     prefs[0][s[0] -  a ] = 1;     for (int i = 1; i < n; i++) {       prefs[i] = prefs[i - 1];       prefs[i][s[i] -  a ]++;     }     preft[0][t[0] -  a ] = 1;     for (int i = 1; i < n; i++) {       preft[i] = preft[i - 1];       preft[i][t[i] -  a ]++;     }     if (prefs[n - 1] != preft[n - 1]) {       cout <<  -1 n ;       return;     }     for (int i = 0; i <= n; i++) {       for (int j = 0; j <= n; j++) {         dp[i][j] = INF;       }     }     dp[0][0] = 0;     for (int i = 0; i < n; i++) {       dp[i + 1][0] = i + 1;       for (int j = 0; j <= i; j++) {         if (have(i + 1, j, s[j]) && dp[i + 1][j + 1] > dp[i + 1][j]) {           dp[i + 1][j + 1] = dp[i + 1][j];         }         if (s[j] == t[i] && dp[i + 1][j + 1] > dp[i][j]) {           dp[i + 1][j + 1] = dp[i][j];         }         if (dp[i + 1][j + 1] > dp[i][j + 1] + 1) {           dp[i + 1][j + 1] = dp[i][j + 1] + 1;         }       }     }     cout << dp[n][n] <<   n ;   }   signed main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     int q;     cin >> q;     while (q--) {       solve();     }   }   