#include <bits/stdc++.h>
using namespace std;
constexpr int Inf = 1000000000;
constexpr long long INF = 9 * 1e18;
constexpr long long MOD = 1000000007;
const double PI = 3.1415926535897;
template <typename T>
T Pow(T a, T b) {
  T ret = 1;
  for (int i = 0; i < b; i++) {
    ret *= a;
  }
  return ret;
}
int main() {
  int T;
  cin >> T;
  for (int i = 0; i < T; i++) {
    int N;
    cin >> N;
    vector<long long> vec(N);
    for (int j = 0; j < N; j++) {
      cin >> vec.at(j);
    }
    long long Max = 0;
    for (int j = 0; j < N - 1; j++) {
      if (vec.at(j) > vec.at(j + 1)) {
        while (vec.at(j) > vec.at(j + 1)) {
          Max = max(Max, vec.at(j) - vec.at(j + 1));
          vec.at(j + 1) = vec.at(j);
        }
      }
    }
    for (long long j = 0; j < 40; j++) {
      if (Max < Pow(2ll, j)) {
        cout << j << endl;
        break;
      }
    }
  }
}
