#include <bits/stdc++.h>
using namespace std;

int n;
vector<string> res;

void dfs(string& s, char c = 'z') {
	if (c == 'a') {
		res.push_back(s);
		return;
	}
	bool ok = true;
	for (int i = 0; i < n; i++) {
		if (s[i] == c - 1) {
			s[i] = c;
			dfs(s, c - 1);
			s[i] = c - 1;
		}
		else if (s[i] == c) {
			ok = false;
			break;
		}
	}
	if (ok) {
		dfs(s, c - 1);
	}
}

int main()
{
	ios::sync_with_stdio(false), cin.tie(0);
	string s;
	while (cin >> s, s != "#") {
		n = s.size();
		dfs(s);
		sort(res.begin(), res.end());
		cout << res.size() << endl;
		if ((int)res.size() > 10) {
			res.erase(res.begin() + 5, res.end() - 5);
		}
		for (auto& t : res) {
			cout << t << endl;
		}
		res.clear();
	}
	return 0;
}

