#include <iostream>
using namespace std;
string c,sg,a;
bool b[26];
int s,t,w,j,ans=-1;
void dfs(int step)
{
if(step==w)
{
// for(int i=0;i<w;i++) cout<<a[i];
// cout<<"&"<<endl;
// for(int i=0;i<w+w;i++) cout<<(a[i]==sg[i]);
if(a==sg) ans=0;
cout<<ans<<endl;
if(ans>=0&&ans<=5)
{
cout<<a<<endl;
ans++;
}
}
for(int i=1;i<=j;i++)
{
if(!b[i]&&(c[i]>a[step-1]||step==0))
{
b[i]=1;
a[step]=c[i];
dfs(step+1);
b[i]=0;
a[step]=NULL;
}
}
}
int main() {
cin>>s>>t>>w>>sg;
for(int i=s;i<=t;i++)
{
c[++j]=i+'a'-1;
}
cout<<sg<<"*"<<endl;
dfs(0);
return 0;
}