#include <bits/stdc++.h>
using namespace std;
const double PI =
    3.14159265358979323846264338327950288419716939937510582097494459230;
template <typename T>
inline T gcd(T a, T b) {
  if (a == 0) return b;
  return gcd(b % a, a);
}
template <typename T>
inline void amin(T& x, T y) {
  if (x > y) x = y;
}
template <typename T>
inline void amax(T& x, T y) {
  if (x < y) x = y;
}
class comp {
 public:
  bool operator()(const pair<int, int>& a, const pair<int, int>& b) {
    if (a.first != b.first) {
      return a.first < b.first;
    } else {
      return a.second > b.second;
    }
  }
};
int n, k;
vector<int> a;
void preprocess(void) { return; }
int main(void) {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.precision(20);
  preprocess();
  int teeee;
  teeee = 1;
  for (int zeeee = (1); zeeee <= (teeee); zeeee++) {
    cin >> n >> k;
    a.resize(n);
    for (int i = (0); i <= ((int)(n)-1); i++) {
      cin >> a[i];
    }
    sort(a.begin(), a.end());
    int cur = k;
    int ans = 0;
    for (int i = (0); i <= ((int)(n)-1); i++) {
      if (a[i] <= 2 * cur) {
        amax(cur, a[i]);
        continue;
      };
      while (a[i] > 2 * cur) {
        cur *= 2;
        ans++;
      }
      amax(cur, a[i]);
    }
    cout << ans << endl;
  }
  return 0;
}
