책 줄 나누기

a부터 b까지 각 너비 m에 대해 단어를 순서대로 m자 이내의 줄에 채우고 각 줄의 첫 단어를 이어 만든 문장의 길이를 구합니다.

어려움8분할 정복누적 합이분 탐색아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

고정폭 글꼴과 단순한 탐욕 알고리즘으로 책을 조판한다. 책의 내용은 단어의 나열이고 각 단어는 한 글자 이상으로 이루어진다.

조판을 시작하기 전에 한 줄의 최대 길이를 정하고 그 값을 mm이라고 한다. 각 줄은 단어 사이에 들어가는 공백까지 세어 최대 mm글자다. 알고리즘은 단어를 앞에서부터 하나씩 처리하며 같은 줄에 놓인 두 단어 사이에 공백을 정확히 하나 넣어 출력한다. 지금 줄에 다음 단어를 이어 붙이면 최대 길이 mm을 넘는 경우에는 그 단어부터 새 줄을 시작한다.

|its.a.long...|          |its.a.long.way|
|way.to.the...|          |to.the.top.if.|
|top.if.you...|          |you.wanna.rock|
|wanna.rock.n.|          |n.roll........|
|roll.........|

"its a long way to the top if you wanna rock n roll"을 최대 줄 길이 13과 14로 조판한 모습이다. 점은 공백을 나타낸다.

mm을 하나 고정하자. 각 줄의 첫 단어를 위에서 아래로 모아 공백 하나로 이은 문장을 선두 문장이라고 한다. 위 그림에서 최대 줄 길이가 14일 때 선두 문장은 "its to you n"이다.

조판할 텍스트와 두 정수 aa, bb가 주어진다. aa 이상 bb 이하인 모든 최대 줄 길이에 대해 선두 문장의 길이를 구하라. 문장의 길이는 그 문장에 들어 있는 공백까지 센 전체 글자 수다.

입력

첫째 줄에 조판할 텍스트가 주어진다. 텍스트는 공백 하나로 구분한 단어의 나열이고 각 단어는 영어 소문자 한 개 이상으로 이루어진다.

둘째 줄에 두 정수 aabb가 주어진다. 위에서 설명한 구간의 양 끝이다.

텍스트에서 가장 긴 단어의 길이를 ww, 공백까지 센 텍스트 전체의 글자 수를 zz라고 하면 1wabz5000001 \le w \le a \le b \le z \le 500000이다.

출력

ba+1b - a + 1개의 줄을 출력한다. kk번째 줄에는 최대 줄 길이가 a1+ka - 1 + k일 때 선두 문장의 길이를 정수 하나로 출력한다.