#include <iostream>
using namespace std;
string ans[20001];
bool flag[20001];
int main()
{
long long n, f;
string s;
cin >> n >> f;
cin >> s;
long long cnt1 = 0;
for (char i = 'a'; i <= 'z'; ++i)
{
for (char j = 'a'; j <= 'z'; ++j)
{
if (i == j)
{
continue;
}
long long cnt = 0;
for (long long k = 2; k < n; ++k)
{
char a = s[k - 2], b = s[k - 1], c = s[k];
if (a == i && b == j && c == j)
{
flag[k - 2] = true;
flag[k - 1] = true;
flag[k] = true;
cnt += 1;
}
}
if (cnt >= f)
{
ans[cnt1] += i;
ans[cnt1] += j;
ans[cnt1] += j;
cnt1 += 1;
}
else if (cnt == f - 1)
{
for (long long k = 2; k < n; ++k)
{
char a = s[k - 2], b = s[k - 1], c = s[k];
if (a == i && b == j && flag[k] == false)
{
ans[cnt1] += i;
ans[cnt1] += j;
ans[cnt1] += j;
cnt1 += 1;
break;
}
else if (b == j && c == j && flag[k - 2] == false)
{
ans[cnt1] += i;
ans[cnt1] += j;
ans[cnt1] += j;
cnt1 += 1;
break;
}
else if (a == i && c == j && flag[k - 1] == false)
{
ans[cnt1] += i;
ans[cnt1] += j;
ans[cnt1] += j;
cnt1 += 1;
break;
}
}
}
}
}
cout << cnt1 << endl;
for (long long i = 0; i < cnt1; ++i)
{
cout << ans[i] << endl;
}
return 0;
}
提交记录