import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
int n = in.nextInt();
long k = in.nextLong() * 100; // 乘以100避免出现小数点
List<Item> items = new ArrayList<>();
for(int i = 0; i < n; i++) {
int price = in.nextInt();
items.add(new Item(price, false)); // 初始化为不优惠
}
String line = in.next();
for(int i = 0; i < n; i++) {
if(line.charAt(i) == '1') {
items.get(i).isDiscount = true; // 标记支持优惠的物品
}
}
// 排序:支持优惠的优先,同类型按价格升序
Collections.sort(items);
long totalCost = 0;
int count = 0;
for(Item item : items) {
long cost = item.isDiscount ? (long) (item.price * 0.95 * 100) : item.price * 100L;
if(totalCost + cost <= k) {
totalCost += cost;
count++;
} else {
break; // 后续物品价格更高,无需继续排查
}
}
System.out.println(count);
}
}
}
class Item implements Comparable<Item> {
int price;
boolean isDiscount;
public Item(int price, boolean isDiscount) {
this.price = price;
this.isDiscount = isDiscount;
}
@Override
public int compareTo(Item other) {
// 支持优惠的打九五折后与不支持优惠的原价参与排序
return Double.compare(this.isDiscount ? this.price * 0.95 : this.price,
other.isDiscount ? other.price * 0.95 : other.price);
}
}