E. Make It Increasingtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given an array of n integers a_1, a_2, ..., a_n, and a set b of k distinct integers from 1 to n.In one operation, you may choose two integers i and x (1 \le i \le n, x can be any integer) and assign a_i := x. This operation can be done only if i does not belong to the set b.Calculate the minimum number of operations you should perform so the array a is increasing (that is, a_1 < a_2 < a_3 < \dots < a_n), or report that it is impossible.InputThe first line contains two integers n and k (1 \le n \le 5 \cdot 10^5, 0 \le k \le n) — the size of the array a and the set b, respectively.The second line contains n integers a_1, a_2, ..., a_n (1 \le a_i \le 10^9).Then, if k \ne 0, the third line follows, containing k integers b_1, b_2, ..., b_k (1 \le b_1 < b_2 < \dots < b_k \le n). If k = 0, this line is skipped.OutputIf it is impossible to make the array a increasing using the given operations, print -1.Otherwise, print one integer — the minimum number of operations you have to perform.ExamplesInput
7 2
1 2 1 1 3 5 1
3 5
Output
4
Input
3 3
1 3 2
1 2 3
Output
-1
Input
5 0
4 3 1 2 3
Output
2
Input
10 3
1 3 5 6 12 9 8 10 13 15
2 4 9
Output
3

7 2
1 2 1 1 3 5 1
3 5

4 
['binary search', 'constructive algorithms', 'data structures', 'dp', 'implementation', '*2200']