import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
/**
n:物品种类数,每种物品只能购买一个,有的物品支持优惠活动,有的并不支持;
k:支付宝余额钱数,支付宝九五折优惠
ai:n个正整数输入物品价格ai表示每个物品的价格
s:一个长度为n 的只含有0 和1 的字符串,表示每个物品是否支持优惠。(如果是1 代表第i 个物品支持优惠,否则不支持)
求仅使用支付宝进行支付的话,最多能买几件物品?
*/
int n = scanner.nextInt();
long k = scanner.nextLong();
long[]a = new long[n];
for (int i = 0; i < n; i++) {
a[i] = scanner.nextLong();
}
String s = scanner.next();
// 统一转化单位:支持优惠 → *95;不支持 → *100,扩大100倍
for (int i = 0; i < n; i++) {
if (s.charAt(i) == '1') a[i] = a[i] * 95;
else a[i] = a[i] * 100;
}
// 排序
Arrays.sort(a);
// 贪心
int count = 0;
k = k * 100;//k *=100;
// ai已经按价格从小到大排序好了,所以只需要遍历a[i],判断k是否大于ai[i],如果大于则k减去ai[i],count加1,否则结束循环
for (int i = 0; i < n; i++) {
if (k >= a[i]) {
k -= a[i];//k-=a[i];
count++;
} else break;
}
System.out.println(count);
scanner.close();
}
}