编程题
### 问题描述
给定 $\mathrm{n}$ 个整数 $\mathrm{a}[1], \mathrm{a}[2], \ldots, \mathrm{a}[\mathrm{n}]$ ,小蓝希望在中间选出一部分,满足以下两个条件 :
1. 对于某个下标集合 $S$ ,选出的数中有至少 $k$ 个下标在集合 $S$ 中;
2. 选出的数按照原来的顺序排列,是严格单调上升的,即选出的是一个上升子序列。 请问小蓝最多能选出多少个数。
### 输入格式
输入的第一行包含两个整数 $n, k$ ,用一个空格分隔。
第二行包含 $\mathrm{n}$ 个整数 $\mathrm{a}[1], \mathrm{a}[2], \ldots, \mathrm{a}[\mathrm{n}]$ ,相邻的整数间用空格分隔。
第三行包含一个长度为 $\mathrm{n}$ 的 01串,依次表示每个下标是否在集合 $S$ 中,为 0 表示不在 $S$ 中,为 1 表示在 S 中。
### 输出格式
输出一行包含一个整数,表示答案。如果没有满足条件的选法,输出-1。
### 样例输入
```text
8 2
8 1 2 3 9 4 7 10
10001010
```
### 样例输出
```text
3
```
### 样例说明
由于 $8 、 9 、 7$ 三个数中至少要选 2 个,只能选 8 和 9 ,剩下的数只能选最后一个数 10 。
### 样例输入
```text
8 3
8 1 2 3 9 4 7 10
10001010
```
### 样例输出
```text
-1
```
### 评测用例规模与约定
对于 $30 \%$ 的评测用例 $, 2\leq n\leq 100,0\leq a[i]\leq 100,0\leq k\leq 3$ 。
对于所有评测用例 , $2\leq n\leq 1000,0\leq a[i]\leq 100000,0\leq k\leq 20$ 。