균형 잡힌 식단

아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

대니는 매일 사탕 가게에서 사탕을 하나 사서 먹는다. 가게에는 1번부터 mm번까지 번호가 붙은 mm가지 사탕이 있다. 대니는 균형 잡힌 식단이 중요하다고 생각해서 사탕을 살 때도 같은 원칙을 지킨다. 사탕 종류 ii마다 목표 비율 fif_i를 정해 두었고, fif_i0<fi10 < f_i \le 1인 실수다. 지금까지 먹은 사탕 가운데 종류 ii가 차지하는 비율을 fif_i에 가깝게 유지하려고 한다.

대니가 먹은 종류 ii 사탕의 개수를 sis_i라 하고, n=i=1msin = \sum_{i=1}^{m} s_i라 하자. 모든 ii에 대해

nfi1<si<nfi+1n f_i - 1 < s_i < n f_i + 1

이 성립하면 지금까지 먹은 사탕이 균형을 이룬다고 한다.

대니는 한동안 사탕을 사서 먹어 왔고, 그동안 먹은 사탕은 줄곧 균형을 이뤘다. 이제 앞으로 몇 개를 더 살 수 있는지 궁금하다. 목표 비율 fif_i와 지금까지 먹은 순서가 주어질 때, 매 순간 균형을 유지하면서 대니가 더 사서 먹을 수 있는 사탕의 최대 개수를 구하라.

입력

입력은 세 줄이다. 첫째 줄에는 사탕 종류의 수 mm (1m1051 \le m \le 10^5)과 대니가 이미 먹은 사탕의 개수 kk (0k1050 \le k \le 10^5)가 주어진다.

둘째 줄에는 양의 정수 a1,,ama_1, \dots, a_m이 주어진다. 이 수는 f1,,fmf_1, \dots, f_m에 비례하며, fi=aij=1majf_i = \frac{a_i}{\sum_{j=1}^{m} a_j}이다. aja_j를 모두 더한 값은 10510^5 이하다.

셋째 줄에는 정수 b1,,bkb_1, \dots, b_k (1bim1 \le b_i \le m)가 주어진다. bib_i는 대니가 ii번째 날에 사서 먹은 사탕의 종류다. 이 수열의 모든 접두사는 수열 전체를 포함해서 균형을 이룬다.

출력

매 순간 균형을 유지하면서 대니가 더 사서 먹을 수 있는 사탕의 최대 개수를 출력한다. 그 개수에 상한이 없으면 forever를 출력한다.