#include <bits/stdc++.h>
using namespace std;
template <typename S, typename T>
inline bool Min(S& a, const T& b) {
  return a > b ? a = b, true : false;
}
template <typename S, typename T>
inline bool Max(S& a, const T& b) {
  return a < b ? a = b, true : false;
}
template <class T>
inline bool IsPri(T x) {
  if (x < 2) return false;
  for (T i = 2; i * i <= x; ++i)
    if (x % i == 0) return false;
  return true;
}
template <class T>
T gcd(T a, T b) {
  return b == 0 ? a : gcd(b, a % b);
};
template <typename T>
inline int _BitCnt(T x) {
  int cnt = 0;
  while (x) ++cnt, x &= x - 1;
  return cnt;
}
double dpow(double a, int b) {
  double res = 1.0;
  for (; b > 0; b >>= 1) {
    if (b & 1) res = res * a;
    a = a * a;
  }
  return res;
}
inline int read() {
  static char buf[1000000], *p1 = buf, *p2 = buf;
  int x = false;
  char ch =
      p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1000000, stdin), p1 == p2)
          ? EOF
          : *p1++;
  ;
  bool sgn = false;
  while (ch != '-' && (ch < '0' || ch > '9'))
    ch = p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1000000, stdin), p1 == p2)
             ? EOF
             : *p1++;
  ;
  if (ch == '-')
    sgn = true,
    ch = p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1000000, stdin), p1 == p2)
             ? EOF
             : *p1++;
  ;
  while (ch >= '0' && ch <= '9')
    x = (x << 1) + (x << 3) + (ch ^ 48),
    ch = p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1000000, stdin), p1 == p2)
             ? EOF
             : *p1++;
  ;
  return sgn ? -x : x;
}
long long qpow(long long a, long long b, long long mod) {
  long long res = 1;
  for (; b > 0; b >>= 1) {
    if (b & 1) res = res % mod * a % mod;
    a = a * a % mod;
  }
  return res;
}
inline long long inv(long long a, long long p) { return qpow(a, p - 2, p); }
int dx[4] = {1, -1, 0, 0};
int dy[4] = {0, 0, -1, 1};
const long long mod = 1e9 + 7;
const int INF = 0x3f3f3f3f;
const long long LINF = 0x3f3f3f3f3f3f3f3f;
const int N = 3000 + 10;
const int M = 1e8 + 10;
const double PI = acos(-1.0);
const double eps = 1e-6;
const double E = exp(1);
const int base = 1e6 + 1;
vector<int> dz;
int a[N];
int d[N];
int main() {
  int t;
  scanf("%d", &t);
  while (t--) {
    dz.clear();
    int n;
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) {
      scanf("%d", &a[i]);
      dz.push_back(a[i]);
    }
    (dz).push_back(INT_MIN),
        (sizeof((dz).back()) == 8 ? (dz).back() = LLONG_MIN : 0),
        sort((dz).begin(), (dz).end()),
        (dz).erase(unique((dz).begin(), (dz).end()), (dz).end());
    for (int i = 1; i <= n; i++)
      a[i] = (lower_bound(dz.begin(), dz.end(), (a[i])) - dz.begin());
    int mx = 0;
    for (int i = 1; i <= n; i++) {
      d[i] = 1;
      for (int j = 1; j < i; j++) {
        if (a[i] - a[j] == 1) Max(d[i], d[j] + 1);
      }
      Max(mx, d[i]);
    }
    printf("%d\n", n - mx);
  }
  return 0;
}
