Given two array of integers **A** and **B** of size **N** and **M** respectively.

The goal is to select some continuous interval in **A** such that there are exactly

**B[0]** elements with value **1**, **B[1]** elements with value **2** and so on

ending with **B[m-1]** elements with value **m**.

However, it is not always possible to select such an interval form the given array therefore it is allowed

to remove some elements from **A** in order to achieve the goal.

Find and return the **minimum** number of elements to be removed from **A** in order to achieve the goal.

If it is not possible to achieve the goal return **-1** instead.

**Input Format**

```
The first argument given is the integer array A.
The second argument given is the integer array B.
```

**Output Format**

```
Return the minimum number of elements to be removed from A in order to achieve the goal and
if it is not possible to achieve the goal return -1 instead.
```

**Constraints**

```
1 <= N, M <= 100000
1 <= A[i] <= M
0 <= B[i] <= N
```

**For Example**

```
Input 1:
A = [1, 2, 3, 4, 1]
B = [2, 1, 1, 0]
Output 1:
1 (Reomve element 4 and consider all the remaining elements).
Input 2:
A = [1, 1, 2, 2, 2]
B = [1, 2, 1]
Output 2:
-1
```

NOTE:You only need to implement the given function. Do not read input, instead use the arguments to the function. Do not print the output, instead return values as specified. Still have a doubt? Checkout Sample Codes for more details.

Sign Up

to access hints and editorial solutions for**Lightsabers**

to access hints and editorial solutions for

Loading...