텍스트 서식
면접 대비시간 제한2초메모리 제한512 MB
주어진 텍스트를 문단별로 b칸 들여쓰기하고 너비 w에 맞춰 단어를 채워 넣으며, 구두점은 앞 단어에 붙여 재배열한다.
문제
TEX나 Wiki 같은 많은 텍스트 서식 시스템은 빈 줄로 텍스트를 문단으로 나눈다. 텍스트는 공백, 줄 바꿈 문자, 그리고 다음과 같은 문장 부호로 구분된 단어의 나열이다: ,, ., ?, !, -, :, ' (ASCII 코드 44, 46, 63, 33, 45, 58, 39). 텍스트의 각 단어는 라틴 알파벳의 대문자와 소문자, 숫자로 이루어진다. 텍스트는 여러 문단으로 구성될 수 있다. 이 경우 인접한 문단은 하나 이상의 빈 줄로 구분된다. 첫 번째 문단 앞과 마지막 문단 뒤에도 하나 이상의 빈 줄이 올 수 있다.
원본 텍스트를 이어서 사용하려면 서식을 지정해야 하는데, 그 방식은 다음과 같다. 각 문단은 길이가 w 이하인 줄로 나누어야 한다. 각 문단의 첫 번째 줄은 b개의 공백으로 이루어진 들여쓰기로 시작해야 한다. 한 줄 안의 단어들은 정확히 하나의 공백으로 구분되어야 한다. 단어 뒤에 하나 이상의 문장 부호가 오면, 그 부호들은 추가 공백 없이 단어 바로 뒤에 와야 한다. 다음 단어가 그 뒤에 오는 문장 부호와 함께 현재 줄에 들어가면 현재 줄에 배치한다. 그렇지 않으면 그 단어부터 새 줄을 시작한다. 서식이 지정된 텍스트에서 문단은 빈 줄로 구분되어서는 안 된다. 줄 끝에는 공백이 있어서는 안 된다.
w와 b, 그리고 주어진 텍스트가 있을 때, 위에서 설명한 대로 서식을 지정한 텍스트를 출력하는 프로그램을 작성하라.
입력
입력 파일의 첫 번째 줄에는 두 정수 w와 b가 주어진다 (5 ≤ w ≤ 100, 1 ≤ b ≤ 8, b < w).
그다음에는 주어진 텍스트를 포함하는 한 줄 이상의 줄이 이어진다. 텍스트에서 단어의 길이에 그 뒤에 오는 문장 부호의 길이를 더한 값은 w를 넘지 않으며, 모든 문단의 첫 번째 단어의 길이에 그 뒤에 오는 문장 부호의 길이를 더한 값은 (w – b)를 넘지 않는다.
입력 파일의 크기는 100 KB를 넘지 않는다. 입력 파일에서 각 줄의 길이는 250을 넘지 않는다.
출력
출력 파일은 문제에 제시된 규칙에 따라 서식을 지정한 주어진 텍스트를 포함해야 한다.