#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
vector<string> ans;
string str;
bool used[26];
int len;

void rec(int p){
  if(p==len){ans.push_back(str);return;}
  int ch=str[p]-'a';
  if(used[ch]){
    rec(p+1);
  }
  if(str[p]<'z'&&!used[ch+1]){
    used[ch+1]=true;
    str[p]++;
    rec(p+1);
    str[p]--;
    used[ch+1]=false;
  }

}
int main(){
  while(1){
    cin>>str;
    if(str=="#")break;
    for(int i=0;i<26;i++)used[i]=false;
    used[0]=true;
    ans.clear();
    len=str.size();
    rec(0);
    sort(ans.begin(),ans.end());
    cout<<ans.size()<<endl;
    if((int)ans.size()<=10){
      for(int i=0;i<(int)ans.size();i++)cout<<ans[i]<<endl;
    }else{
      for(int i=0;i<5;i++)cout<<ans[i]<<endl;
      for(int i=(int)ans.size()-5;i<(int)ans.size();i++){
	cout<<ans[i]<<endl;
      }
    }
  }
  return 0;
}