#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define endl '\n'
using vi = vector<int>;
using vl = vector<ll>;
typedef pair<int, int> pii;
using vpii = vector<pii>;
const int MOD=998244353;
//#define int ll
int main() {
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    int n,k;cin>>n>>k;
    priority_queue<int,vector<int>,greater<int>> a;//定义一个优先队列,让其是最小的在队列头
    for (int i=0;i<n;i++){
        int x;cin>>x;
        a.push(x);
    }
    int day=0;
    int sum=0;
    int i=0;
    while (1) { //将最小的不舒适度放到sum中,当不舒适度大于k时候,跳出循环
        sum+=a.top();
        if (sum>k)break;
        a.push(a.top()*2);
        a.pop();
        day++;
    }
    cout<<day<<endl;
    return 0;

}