#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
long long k;
cin>>n>>k;
long long sum=0;//不适度总和
priority_queue<long long, vector<long long>, greater<long long>> heap;
int a[100000];
for(int i=0;i<n;i++){
long long a;
cin>>a;
heap.push(a);//入堆
}
int day=0;
while(!heap.empty()){
long long current_min = heap.top();
heap.pop();//取出最小值
if(sum + current_min > k ){//没有口罩可用了
break;
}
sum+=current_min;
day++;
heap.push(current_min*2);//翻倍后再入堆
}
cout<<day<<endl;
}

京公网安备 11010502036488号