파인애플 피자

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

문제

NN개의 조각으로 이뤄진 파인애플 피자 한 판이 있다. 각 피자 조각의 파인애플 토핑의 개수는 시계 방향 순으로 a_1,a_2,,a_Na\_1, a\_2, \cdots, a\_N개다. 파인애플 피자를 맛보기 위해 K(N)K(\le N)명의 손님이 줄을 서서 기다리고 있다. 당신은 첫 조각을 고른 후, 시계 방향 순으로 피자를 한 조각씩 떼어 줄을 선 순서대로 손님에게 제공한다. 예를 들어, 44명의 손님에게 토핑 개수가 a_N1a\_{N-1}개, a_Na\_N개, a_1a\_1개, a_2a\_2개인 피자 조각을 순서대로 나눠줄 수 있다.

각 손님의 나이는 줄을 선 순서대로 b_1,b_2,,b_Kb\_1, b\_2, \cdots, b\_K이다. 손님들은 자신보다 나이가 어린 사람보다 파인애플 토핑을 많이 받아야 하고 나이가 같은 사람과는 같은 개수의 파인애플 토핑을 받아야 한다. 그렇지 못한 경우 손님은 그 자리에서 밥상을 엎어버린다.

손님들이 밥상을 엎지 않도록 피자 조각을 고를 수 있는 방법은 몇 가지일까?

입력

첫째 줄에 피자 조각의 개수 NN과 손님의 수 KK가 공백으로 구분되어 주어진다. (1KN100 0001 \leq K \leq N \leq 100\ 000)

둘째 줄에 각 피자 조각의 파인애플 토핑의 개수를 나타내는 정수 a_1,a_2,,a_Na\_1, a\_2, \cdots, a\_N가 공백으로 구분되어 주어진다. (0a_i1090 \leq a\_i \leq 10^9)

셋째 줄에 손님들의 나이를 나타내는 정수 b_1,b_2,,b_Kb\_1, b\_2, \cdots, b\_K가 공백으로 구분되어 주어진다. (0b_i 1090 \leq b\_i \leq 10^9)

출력

손님들이 밥상을 엎지 않도록 피자 조각을 고를 수 있는 방법의 수를 출력한다.