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();
    }
}