대니는 매일 사탕 가게에서 사탕을 하나 사서 먹는다. 가게에는 1번부터 m번까지 번호가 붙은 m가지 사탕이 있다. 대니는 균형 잡힌 식단이 중요하다고 생각해서 사탕을 살 때도 같은 원칙을 지킨다. 사탕 종류 i마다 목표 비율 fi를 정해 두었고, fi는 0<fi≤1인 실수다. 지금까지 먹은 사탕 가운데 종류 i가 차지하는 비율을 fi에 가깝게 유지하려고 한다.
대니가 먹은 종류 i 사탕의 개수를 si라 하고, n=∑i=1msi라 하자. 모든 i에 대해
nfi−1<si<nfi+1
이 성립하면 지금까지 먹은 사탕이 균형을 이룬다고 한다.
대니는 한동안 사탕을 사서 먹어 왔고, 그동안 먹은 사탕은 줄곧 균형을 이뤘다. 이제 앞으로 몇 개를 더 살 수 있는지 궁금하다. 목표 비율 fi와 지금까지 먹은 순서가 주어질 때, 매 순간 균형을 유지하면서 대니가 더 사서 먹을 수 있는 사탕의 최대 개수를 구하라.
입력은 세 줄이다. 첫째 줄에는 사탕 종류의 수 m (1≤m≤105)과 대니가 이미 먹은 사탕의 개수 k (0≤k≤105)가 주어진다.
둘째 줄에는 양의 정수 a1,…,am이 주어진다. 이 수는 f1,…,fm에 비례하며, fi=∑j=1majai이다. aj를 모두 더한 값은 105 이하다.
셋째 줄에는 정수 b1,…,bk (1≤bi≤m)가 주어진다. bi는 대니가 i번째 날에 사서 먹은 사탕의 종류다. 이 수열의 모든 접두사는 수열 전체를 포함해서 균형을 이룬다.
매 순간 균형을 유지하면서 대니가 더 사서 먹을 수 있는 사탕의 최대 개수를 출력한다. 그 개수에 상한이 없으면 forever를 출력한다.