#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
// 要想买到最多东西,言外之意就是买最便宜的东西
int main() {
int n,k;
cin >> n >> k;
vector<double> pre_price(n);
vector<double> de_price(n);
for (int i = 0; i < n; i++) {
cin >> pre_price[i];
}
string s;
cin >> s;
for (int i = 0; i < n; i++) {
if (s[i] == '1') {
de_price[i] = pre_price[i] * 0.95;
}
else {
de_price[i] = pre_price[i];
}
}
sort(de_price.begin(), de_price.end());
double summ = 0;
int cnt = 0;
for (int i = 0; i < n; i++) {
summ += de_price[i];
if (summ > k) { // 能否购买逻辑:在买入这件物品后,是否会导致summ大于k,如果是,就不买
break;
}
cnt++;
}
cout << cnt;
}
