#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
bool cmp(string s, string t) {
  sort(s.begin(), s.end());
  sort(t.begin(), t.end());
  if (s != t) {
    return 1;
  } else {
    return 0;
  }
}
int dp[2005][2005];
int suf[26][2005];
int suf2[26][2005];
string s, t;
int DC(int x, int y) {
  if (x < 0) {
    return 0;
  }
  if (~dp[x][y]) {
    return dp[x][y];
  }
  int mi = 1e9;
  mi = min(mi, DC(x - 1, y) + 1);
  if (s[x] == t[y]) {
    mi = min(mi, DC(x - 1, y - 1));
  }
  if (suf[t[y] - 'a'][x + 1] >= suf2[t[y] - 'a'][y]) {
    mi = min(mi, DC(x, y - 1));
  }
  return dp[x][y] = mi;
}
void solve() {
  int n;
  cin >> n;
  cin >> s >> t;
  if (cmp(s, t)) {
    cout << -1 << '\n';
    return;
  }
  for (int i = 0; i < n + 2; i++) {
    for (int j = 0; j < n + 2; j++) {
      dp[i][j] = -1;
    }
    for (int j = 0; j < 26; j++) {
      suf[j][i] = 0;
    }
    for (int j = 0; j < 26; j++) {
      suf2[j][i] = 0;
    }
  }
  for (int i = n - 1; i >= 0; i--) {
    for (int j = 0; j < 26; j++) {
      if (s[i] == 'a' + j) {
        suf[j][i] = suf[j][i + 1] + 1;
      } else {
        suf[j][i] = suf[j][i + 1];
      }
      if (t[i] == 'a' + j) {
        suf2[j][i] = suf2[j][i + 1] + 1;
      } else {
        suf2[j][i] = suf2[j][i + 1];
      }
    }
  }
  cout << DC(n - 1, n - 1) << '\n';
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int t;
  cin >> t;
  while (t--) {
    solve();
  }
}
