using System;
using System.Linq;
public class Test {
static string Increment(string s) {
if (s.All(c => c == 'z')) {
return new string(Enumerable.Repeat('a', s.Length+1).ToArray());
}
var res = s.ToCharArray();
var pos = res.Length - 1;
do {
if (res[pos] != 'z') {
res[pos]++;
break;
}
res[pos--] = 'a';
} while (true);
return new string(res);
}
public static void Main() {
var s = "a";
var i = 0;
do {
Console.Write(s+" ");
if (++i == 26) {
Console.WriteLine();
i = 0;
}
s = Increment(s);
} while (s != "aaaa");
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKCnB1YmxpYyBjbGFzcyBUZXN0IHsKICAgIHN0YXRpYyBzdHJpbmcgSW5jcmVtZW50KHN0cmluZyBzKSB7CiAgICAgICAgaWYgKHMuQWxsKGMgPT4gYyA9PSAneicpKSB7CiAgICAgICAgICAgIHJldHVybiBuZXcgc3RyaW5nKEVudW1lcmFibGUuUmVwZWF0KCdhJywgcy5MZW5ndGgrMSkuVG9BcnJheSgpKTsKICAgICAgICB9CiAgICAgICAgdmFyIHJlcyA9IHMuVG9DaGFyQXJyYXkoKTsKICAgICAgICB2YXIgcG9zID0gcmVzLkxlbmd0aCAtIDE7CiAgICAgICAgZG8gewogICAgICAgICAgICBpZiAocmVzW3Bvc10gIT0gJ3onKSB7CiAgICAgICAgICAgICAgICByZXNbcG9zXSsrOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmVzW3Bvcy0tXSA9ICdhJzsKICAgICAgICB9IHdoaWxlICh0cnVlKTsKICAgICAgICByZXR1cm4gbmV3IHN0cmluZyhyZXMpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkgewoJdmFyIHMgPSAiYSI7CiAgICAgICAgdmFyIGkgPSAwOwogICAgICAgIGRvIHsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZShzKyIgIik7CiAgICAgICAgICAgIGlmICgrK2kgPT0gMjYpIHsKICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCk7CiAgICAgICAgICAgICAgICBpID0gMDsKICAgICAgICAgICAgfQogICAgICAgICAgICBzID0gSW5jcmVtZW50KHMpOwogICAgICAgIH0gd2hpbGUgKHMgIT0gImFhYWEiKTsKICAgIH0KfQ==