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