#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<fstream>
#include<map>
#include<ctime>
#include<set>
#include<queue>
#include<cmath>
#include<vector>
#include<bitset>
#include<functional>
#define x first
#define y second
#define mp make_pair
#define pb push_back
#define REP(i,l,r) for((i)=(l);(i)<=(r);++(i))
#define REP2(i,l,r) for((i)=(l);(i)!=(r);++(i))
using namespace std;
typedef long long LL;
typedef double ld;
const int MAX=1000000+10;
int n,k;
char str[MAX];
int pre[MAX],suf[MAX];
int w[MAX],num[MAX];
int pre2[MAX],suf2[MAX];
int q[MAX*3],head,end,is[MAX];
void del(int pre[MAX],int suf[MAX],int u)
{
suf[pre[u]]=suf[u];
pre[suf[u]]=pre[u];
}
int ans[MAX],top,answer[MAX];
int main()
{
// freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);
scanf("%d%d",&n,&k);
scanf("%s",str+1);
int last=0,i;
for(int i=1;i<=n;++i)
if(str[i]=='c')
{
pre[i]=last;
suf[last]=i;
num[i]=i-1-last;
last=i;
}
pre[0]=last;
num[0]=n-last;
for(int i=1;i<=n;++i)
{
suf2[i]=i+1;
pre2[i]=i-1;
}
suf2[n]=0;
for(int i=suf[0];i;i=suf[i])
{
w[i]=num[i]+num[suf[i]];
is[i]=1;
if(w[i]>=k)
q[end++]=i;
}
while(head<end)
{
int u=q[head++];
if(!is[u] || w[u]<k)
continue;
int res=k,tot=0;
for(i=pre2[u];i && res && str[i]!='c';i=pre2[i])
{
--res;
--num[u];
ans[++tot]=i;
}
reverse(ans+1,ans+tot+1);
ans[++tot]=u;
for(i=suf2[u];i && res;i=suf2[i])
{
--res;
--num[suf[u]];
ans[++tot]=i;
}
num[suf[u]]+=num[u];
REP(i,1,tot)
{
del(pre2,suf2,ans[i]);
answer[++top]=ans[i];
}
is[u]=0;
if(pre[u])
{
w[pre[u]]=num[pre[u]]+num[suf[u]];
q[end++]=pre[u];
}
if(suf[u])
{
w[suf[u]]=num[suf[u]]+num[suf[ suf[u] ]];
q[end++]=suf[u];
}
del(pre,suf,u);
}
for(i=top-k;i>0;i-=k+1)
{
for(int j=i;j<=i+k;++j)
printf("%d ",answer[j]);
printf("\n");
}
return 0;
}
I2luY2x1ZGU8Y3N0ZGlvPgojaW5jbHVkZTxjc3RkbGliPgojaW5jbHVkZTxjc3RyaW5nPgojaW5jbHVkZTxhbGdvcml0aG0+CiNpbmNsdWRlPGlvc3RyZWFtPgojaW5jbHVkZTxmc3RyZWFtPgojaW5jbHVkZTxtYXA+CiNpbmNsdWRlPGN0aW1lPgojaW5jbHVkZTxzZXQ+CiNpbmNsdWRlPHF1ZXVlPgojaW5jbHVkZTxjbWF0aD4KI2luY2x1ZGU8dmVjdG9yPgojaW5jbHVkZTxiaXRzZXQ+CiNpbmNsdWRlPGZ1bmN0aW9uYWw+CiNkZWZpbmUgeCBmaXJzdAojZGVmaW5lIHkgc2Vjb25kCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgUkVQKGksbCxyKSBmb3IoKGkpPShsKTsoaSk8PShyKTsrKyhpKSkKI2RlZmluZSBSRVAyKGksbCxyKSBmb3IoKGkpPShsKTsoaSkhPShyKTsrKyhpKSkKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgbG9uZyBsb25nIExMOwp0eXBlZGVmIGRvdWJsZSBsZDsKCmNvbnN0IGludCBNQVg9MTAwMDAwMCsxMDsKCmludCBuLGs7CmNoYXIgc3RyW01BWF07CmludCBwcmVbTUFYXSxzdWZbTUFYXTsKaW50IHdbTUFYXSxudW1bTUFYXTsKaW50IHByZTJbTUFYXSxzdWYyW01BWF07CgppbnQgcVtNQVgqM10saGVhZCxlbmQsaXNbTUFYXTsKCnZvaWQgZGVsKGludCBwcmVbTUFYXSxpbnQgc3VmW01BWF0saW50IHUpCnsKICAgIHN1ZltwcmVbdV1dPXN1Zlt1XTsKICAgIHByZVtzdWZbdV1dPXByZVt1XTsKfQoKaW50IGFuc1tNQVhdLHRvcCxhbnN3ZXJbTUFYXTsKCmludCBtYWluKCkKewovLyAgICBmcmVvcGVuKCJpbnB1dC50eHQiLCJyIixzdGRpbik7ZnJlb3Blbigib3V0cHV0LnR4dCIsInciLHN0ZG91dCk7CiAgICBzY2FuZigiJWQlZCIsJm4sJmspOwogICAgc2NhbmYoIiVzIixzdHIrMSk7CiAgICBpbnQgbGFzdD0wLGk7CiAgICBmb3IoaW50IGk9MTtpPD1uOysraSkKICAgICAgICBpZihzdHJbaV09PSdjJykKICAgICAgICB7CiAgICAgICAgICAgIHByZVtpXT1sYXN0OwogICAgICAgICAgICBzdWZbbGFzdF09aTsKICAgICAgICAgICAgbnVtW2ldPWktMS1sYXN0OwogICAgICAgICAgICBsYXN0PWk7CiAgICAgICAgfQogICAgcHJlWzBdPWxhc3Q7CiAgICBudW1bMF09bi1sYXN0OwoKICAgIGZvcihpbnQgaT0xO2k8PW47KytpKQogICAgewogICAgICAgIHN1ZjJbaV09aSsxOwogICAgICAgIHByZTJbaV09aS0xOwogICAgfQogICAgc3VmMltuXT0wOwoKICAgIGZvcihpbnQgaT1zdWZbMF07aTtpPXN1ZltpXSkKICAgIHsKICAgICAgICB3W2ldPW51bVtpXStudW1bc3VmW2ldXTsKICAgICAgICBpc1tpXT0xOwogICAgICAgIGlmKHdbaV0+PWspCiAgICAgICAgICAgIHFbZW5kKytdPWk7CiAgICB9CgogICAgd2hpbGUoaGVhZDxlbmQpCiAgICB7CiAgICAgICAgaW50IHU9cVtoZWFkKytdOwogICAgICAgIGlmKCFpc1t1XSB8fCB3W3VdPGspCiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIGludCByZXM9ayx0b3Q9MDsKICAgICAgICBmb3IoaT1wcmUyW3VdO2kgJiYgcmVzICYmIHN0cltpXSE9J2MnO2k9cHJlMltpXSkKICAgICAgICB7CiAgICAgICAgICAgIC0tcmVzOwogICAgICAgICAgICAtLW51bVt1XTsKICAgICAgICAgICAgYW5zWysrdG90XT1pOwogICAgICAgIH0KICAgICAgICByZXZlcnNlKGFucysxLGFucyt0b3QrMSk7CiAgICAgICAgYW5zWysrdG90XT11OwogICAgICAgIGZvcihpPXN1ZjJbdV07aSAmJiByZXM7aT1zdWYyW2ldKQogICAgICAgIHsKICAgICAgICAgICAgLS1yZXM7CiAgICAgICAgICAgIC0tbnVtW3N1Zlt1XV07CiAgICAgICAgICAgIGFuc1srK3RvdF09aTsKICAgICAgICB9CiAgICAgICAgbnVtW3N1Zlt1XV0rPW51bVt1XTsKICAgICAgICBSRVAoaSwxLHRvdCkKICAgICAgICB7CiAgICAgICAgICAgIGRlbChwcmUyLHN1ZjIsYW5zW2ldKTsKICAgICAgICAgICAgYW5zd2VyWysrdG9wXT1hbnNbaV07CiAgICAgICAgfQogICAgICAgIGlzW3VdPTA7CiAgICAgICAgaWYocHJlW3VdKQogICAgICAgIHsKICAgICAgICAgICAgd1twcmVbdV1dPW51bVtwcmVbdV1dK251bVtzdWZbdV1dOwogICAgICAgICAgICBxW2VuZCsrXT1wcmVbdV07CiAgICAgICAgfQogICAgICAgIGlmKHN1Zlt1XSkKICAgICAgICB7CiAgICAgICAgICAgIHdbc3VmW3VdXT1udW1bc3VmW3VdXStudW1bc3VmWyBzdWZbdV0gXV07CiAgICAgICAgICAgIHFbZW5kKytdPXN1Zlt1XTsKICAgICAgICB9CiAgICAgICAgZGVsKHByZSxzdWYsdSk7CiAgICB9CgogICAgZm9yKGk9dG9wLWs7aT4wO2ktPWsrMSkKICAgIHsKICAgICAgICBmb3IoaW50IGo9aTtqPD1pK2s7KytqKQogICAgICAgICAgICBwcmludGYoIiVkICIsYW5zd2VyW2pdKTsKICAgICAgICBwcmludGYoIlxuIik7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=