http://codeforces.com/problemset/problem/732/D

723-D Exam 발번역 주의!


바실리의 시험기간은 N일동안 계속되는데 M개의 과목을 PASS해야 된다. 

매일 우리는 1~M으로 번호 붙여진 과목 중 그날 어느 과목을 시험보는지 알 수 있다. 


바실리는 매일 시험을 치거나, 시험 준비를 하거나, 그냥 쉬는데,


여기서 시험 준비에 대해 살펴보자면 각 과목에 주어진 시험공부기간 ai가 있다. 바실리는 ai일 동안 i로 넘버링된 과목에 대하여 공부해야지만 통과 할 수 있다. 

시험공부는 연속적으로 할 필요 없이 하고싶은 날에 하고싶은 과목을 할 수 있다.


자 당신이 해야 될 일은 바실리가 모든 시험을 통과할수 있는지, 통과한다면 그 최소 일수를 구하는 것이다.


INPUT

n,m을 입력받는다(1 ≤ n, m ≤ 105)

n개 날짜에 대하여 순서대로 날자별로 보는 시험  d1, d2, ..., dn (0 ≤ di ≤ m),

m개 시험에 대하여 순서대로 필요 준비기간 a1, a2, ..., am (1 ≤ ai ≤ 105)

OUTPUT

통과시 최소 필요 일 수, 통과 불가능시 -1 출력



기왕 번역하는거 하루 한 문제정도 공유해서 같이 풀어보면 재밌을거 같음. 

거의 의역인데 통번역하려고 해보니까 쓸대없는 잡소리가 넘 많아서 ;;

이 문제는 코드포스 중간보다 좀 아래 정도 레이팅문제 입니다.