빼내기

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

문제

어린 에드나가 선물로 빼내기 게임을 받았다. 빼내기는 혼자서 하는 게임이다. 한 줄로 나란히 놓인 블록 nn개가 주어지며, 각 블록에는 왼쪽부터 오른쪽으로 11번부터 nn번까지 번호가 매겨져 있다. 블록은 흰색이거나 검은색이고, 흰색 블록의 개수는 검은색 블록 개수의 정확히 kk배이다.

목표는 허용되는 조작만으로 모든 블록을 빼내는 것이다.

한 번의 조작은 흰색 블록 kk개와 검은색 블록 11개를 함께 빼내며, 이때 나머지 블록의 위치는 바꾸지 않는다. 앞선 조작으로 블록이 빠져나가 생긴 빈자리를 틈이라고 하자. 어떤 조작이 허용되려면, 그 조작으로 빼내는 k+1k+1개의 블록을 왼쪽에서 오른쪽 순서로 늘어놓았을 때 이웃한 두 블록 사이에 틈이 없어야 한다. 빼내는 블록들 사이에 아직 남아 있는 블록이 끼어 있어도 괜찮으며, 앞선 조작으로 생긴 틈만 없으면 된다.

모든 입력은 끝까지 빼낼 수 있으므로, 그러한 조작의 순서는 항상 존재한다.

입력

첫째 줄에 두 정수 nnkk가 공백 하나로 구분되어 주어진다 (2n1,000,0002 \le n \le 1{,}000{,}000, 1kn11 \le k \le n-1). nn은 블록의 총개수이고, kk는 한 번의 조작에서 검은색 블록 하나와 함께 빼내는 흰색 블록의 개수이다. 모든 입력에서 k+1k+1nn을 나눈다.

둘째 줄에 길이 nn인 문자열이 주어진다. 각 문자는 흰색 블록을 뜻하는 b 또는 검은색 블록을 뜻하는 c이며, 왼쪽부터 오른쪽까지 블록의 색을 나타낸다.

출력

nk+1\frac{n}{k+1}개의 줄을 출력한다. 각 줄은 한 번의 조작에 해당하며, 그 조작에서 빼내는 k+1k+1개의 블록 번호를 오름차순으로 공백 하나씩 구분하여 적는다.

유효한 순서는 여러 가지일 수 있으므로, 항상 유효한 답을 만들어 내는 다음의 표준 절차로 얻는 순서를 출력한다.

  1. 블록을 왼쪽에서 오른쪽으로 훑으면서 하나씩 스택에 넣는다.
  2. 블록을 하나 넣을 때마다, 스택의 맨 위 k+1k+1개 블록에 검은색 블록이 정확히 하나(따라서 흰색 블록이 kk개) 있는 동안 그 k+1k+1개를 한 묶음으로 스택에서 꺼내고, 이 묶음을 답 목록의 맨 앞에 놓는다. 다음 블록을 넣기 전에 새로 드러난 맨 위를 다시 확인한다.
  3. 마지막 블록을 넣고 나면 스택이 비고, 정확히 nk+1\frac{n}{k+1}개의 묶음이 만들어진다.

이렇게 얻은 순서대로 묶음을 출력하므로, 가장 나중에 만들어진 묶음이 가장 먼저 출력된다. 각 줄 안의 번호는 오름차순이다.

노트

틈은 블록을 빼내어 생긴 빈자리를 뜻한다. 첫 번째 예제 입력에서 그 조작들을 차례로 수행하면 블록의 배열이 아래 그림처럼 단계별로 바뀐다.