#include <bits/stdc++.h>
using namespace std;
template <typename A>
ostream &operator<<(ostream &cout, vector<A> const &v) {
  cout << "[";
  for (int i = 0; i < v.size(); i++) {
    if (i) cout << ", ";
    cout << v[i];
  }
  return cout << "]";
}
template <typename A, typename B>
ostream &operator<<(ostream &cout, pair<A, B> const &p) {
  return cout << "(" << p.first << ", " << p.second << ")";
}
template <typename A, typename B>
istream &operator>>(istream &cin, pair<A, B> &p) {
  cin >> p.first;
  return cin >> p.second;
}
int drx[] = {1, -1, 0, 0};
int dry[] = {0, 0, 1, -1};
void caseNumber(int x) { printf("Case %d: ", x); }
void yes() { cout << "YES\n"; }
void no() { cout << "NO\n"; }
int gray_code(int n) { return n ^ (n >> 1); }
int turnOn(int x, int pos) { return x | (1 << pos); }
int turnOff(int x, int pos) { return x & !(1 << pos); }
bool isOn(int x, int pos) { return (bool)(x & (1 << pos)); }
double geo_dis(double x1, double y1, double x2, double y2) {
  double d1 = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);
  d1 = sqrt(d1);
  return d1;
}
long long int const mod = 1000000007;
long long int const inf = 1e18 + 9;
long long int const mod1 = 1e9 + 7;
long long int const MAX = 1000005;
long long int const maxn = 3e5 + 9;
bool comp(pair<int, int> a, pair<int, int> b) {
  if (a.first == b.first)
    return a.second < b.second;
  else
    return a.first < b.first;
}
void solve() {
  int n;
  cin >> n;
  string a;
  cin >> a;
  int f[26] = {0};
  int ans = 0;
  for (int i = 0; i < n; i++) {
    f[a[i] - 'a']++;
  }
  int l = 0, r = 0;
  pair<int, int> b[n + 1];
  for (int i = 0; i < n; i++) {
    b[i].first = (a[i] - 'a');
    b[i].second = i + 1;
  }
  sort(b, b + n);
  for (int i = 0; i < n; i++) {
    if (i == 0) {
      l = 1, r = f[b[i].first];
      if (b[i].second >= l and b[i].second <= r) {
      } else
        ans++;
    } else {
      if (b[i].first != b[i - 1].first) {
        l = r + 1, r = r + f[b[i].first];
        if (b[i].second >= l and b[i].second <= r) {
        } else
          ans++;
      } else {
        if (b[i].second >= l and b[i].second <= r) {
        } else
          ans++;
      }
    }
  }
  cout << ans << endl;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  int tc;
  cin >> tc;
  while (tc--) solve();
}

### Prompt

Please formulate a CPP solution to the following problem:

A string s of length n, consisting of lowercase letters of the English alphabet, is given.

You must choose some number k between 0 and n. Then, you select k characters of s and permute them however you want. In this process, the positions of the other n-k characters remain unchanged. You have to perform this operation exactly once.

For example, if s="andrea", you can choose the k=4 characters "a_d_ea" and permute them into "d_e_aa" so that after the operation the string becomes "dneraa".

Determine the minimum k so that it is possible to sort s alphabetically (that is, after the operation its characters appear in alphabetical order).

Input

The first line contains a single integer t (1 ≤ t ≤ 1000) — the number of test cases. Then t test cases follow.

The first line of each test case contains one integer n (1 ≤ n ≤ 40) — the length of the string.

The second line of each test case contains the string s. It is guaranteed that s contains only lowercase letters of the English alphabet.

Output

For each test case, output the minimum k that allows you to obtain a string sorted alphabetically, through the operation described above.

Example

Input


4
3
lol
10
codeforces
5
aaaaa
4
dcba


Output


2
6
0
4

Note

In the first test case, we can choose the k=2 characters "_ol" and rearrange them as "_lo" (so the resulting string is "llo"). It is not possible to sort the string choosing strictly less than 2 characters.

In the second test case, one possible way to sort s is to consider the k=6 characters "_o__force_" and rearrange them as "_c__efoor_" (so the resulting string is "ccdeefoors"). One can show that it is not possible to sort the string choosing strictly less than 6 characters.

In the third test case, string s is already sorted (so we can choose k=0 characters).

In the fourth test case, we can choose all k=4 characters "dcba" and reverse the whole string (so the resulting string is "abcd").

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
template <typename A>
ostream &operator<<(ostream &cout, vector<A> const &v) {
  cout << "[";
  for (int i = 0; i < v.size(); i++) {
    if (i) cout << ", ";
    cout << v[i];
  }
  return cout << "]";
}
template <typename A, typename B>
ostream &operator<<(ostream &cout, pair<A, B> const &p) {
  return cout << "(" << p.first << ", " << p.second << ")";
}
template <typename A, typename B>
istream &operator>>(istream &cin, pair<A, B> &p) {
  cin >> p.first;
  return cin >> p.second;
}
int drx[] = {1, -1, 0, 0};
int dry[] = {0, 0, 1, -1};
void caseNumber(int x) { printf("Case %d: ", x); }
void yes() { cout << "YES\n"; }
void no() { cout << "NO\n"; }
int gray_code(int n) { return n ^ (n >> 1); }
int turnOn(int x, int pos) { return x | (1 << pos); }
int turnOff(int x, int pos) { return x & !(1 << pos); }
bool isOn(int x, int pos) { return (bool)(x & (1 << pos)); }
double geo_dis(double x1, double y1, double x2, double y2) {
  double d1 = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);
  d1 = sqrt(d1);
  return d1;
}
long long int const mod = 1000000007;
long long int const inf = 1e18 + 9;
long long int const mod1 = 1e9 + 7;
long long int const MAX = 1000005;
long long int const maxn = 3e5 + 9;
bool comp(pair<int, int> a, pair<int, int> b) {
  if (a.first == b.first)
    return a.second < b.second;
  else
    return a.first < b.first;
}
void solve() {
  int n;
  cin >> n;
  string a;
  cin >> a;
  int f[26] = {0};
  int ans = 0;
  for (int i = 0; i < n; i++) {
    f[a[i] - 'a']++;
  }
  int l = 0, r = 0;
  pair<int, int> b[n + 1];
  for (int i = 0; i < n; i++) {
    b[i].first = (a[i] - 'a');
    b[i].second = i + 1;
  }
  sort(b, b + n);
  for (int i = 0; i < n; i++) {
    if (i == 0) {
      l = 1, r = f[b[i].first];
      if (b[i].second >= l and b[i].second <= r) {
      } else
        ans++;
    } else {
      if (b[i].first != b[i - 1].first) {
        l = r + 1, r = r + f[b[i].first];
        if (b[i].second >= l and b[i].second <= r) {
        } else
          ans++;
      } else {
        if (b[i].second >= l and b[i].second <= r) {
        } else
          ans++;
      }
    }
  }
  cout << ans << endl;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  int tc;
  cin >> tc;
  while (tc--) solve();
}

```