# dev-c++上运行没问题,但到洛谷上显示报错了。
#include<bits/stdc++.h>
using namespace std;
map<string,int> LW3;
int n,f,kill; string str;
string headshot[20005];
int main(){
ios::sync_with_stdio(false),cin.tie(0);
cin>>n>>f; cin>>str;
for(int i=0;i<str.size();i++){
if(i>=str.size()-21) continue;
if(str[i+1]==str[i+2]&&str[i]!=str[i+1]){
string x;
x+=str[i];
x+=str[i+1];
x+=str[i+2];
LW3[x]++;
}
} for(auto x:LW3){
if(x.second>=f)
headshot[++kill]=x.first;
else if(x.second==f-1){
for(int i=0;i<str.size();i++){
if(str[i]==x.first[0]&&str[i+1]==x.first[1]&&str[i+2]!=x.first[2]){
if(str[i+2]==x.first[0]&&str[i+3]==x.first[1]&&str[i+4]==x.first[2])
continue;
else{ headshot[++kill]=x.first;
break; }
} if(str[i]!=x.first[0]&&str[i+1]==x.first[1]&&str[i+2]==x.first[2]){
if(str[i-2]==x.first[0]&&str[i-1]==x.first[1]&&str[i]==x.first[2])
continue;
else{ headshot[++kill]=x.first;
break; }
} if(str[i]==x.first[0]&&str[i+1]!=x.first[1]&&str[i+2]==x.first[2]){
if(str[i+1]==x.first[0]&&str[i+2]==x.first[1]&&str[i+3]==x.first[2])
continue;
else{ headshot[++kill]=x.first;
break; }
}
}
}
} cout<<kill<<endl; for(int i=1;i<=kill;i++) cout<<headshot[i]<<endl;
return 0;
}