// 每日一题 小顶堆
#include <bits/stdc++.h>
using namespace std;

int main() {
    int n, k;
    cin >> n >> k;
    
    priority_queue<int, vector<int>, greater<int>> heap;
    for (int i = 0; i < n; i++) {
        int num;
        cin >> num;
        heap.push(num);
    }

    int sum = 0, day = 0;
    if (heap.top() > k) {
        cout << 0 << endl;
    }
    while (k >= sum) {
        sum += heap.top();
        int tmp = heap.top() * 2;
        heap.pop();
        heap.push(tmp);
        day++;
    }
    cout << day - 1 << endl;
}