/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static final char VOVEL_SYMBOL = 'v';
public static final char CONSONANT_SYMBOL = 'c';
public static List
<Character
> consonants
= Arrays.
asList('b',
'c',
'd',
'g',
'h',
'k',
'l',
'm',
'n',
'p',
'r',
's',
't',
'v'); public static List
<Character
> vowels
= Arrays.
asList('a',
'e',
'i',
'o');
public static String pattern
= "cvLLv";
public static void generate(StringBuilder word, int index){
if (word.length() == index) {
return;
}
List<Character> letterSet = null;
char currentCharacter = pattern.charAt(index);
if (currentCharacter == CONSONANT_SYMBOL) {
letterSet = consonants;
} else if (currentCharacter == VOVEL_SYMBOL){
letterSet = vowels;
} else {
letterSet
= Arrays.
asList(currentCharacter
); }
word.setCharAt(index, letter);
generate(word, index + 1);
}
}
public static void main
(String[] args
) { StringBuilder word = new StringBuilder();
word.setLength(pattern.length());
generate(word,0);
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2hhciBWT1ZFTF9TWU1CT0wgPSAndic7CiAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXIgQ09OU09OQU5UX1NZTUJPTCA9ICdjJzsKICAgIHB1YmxpYyBzdGF0aWMgTGlzdDxDaGFyYWN0ZXI+IGNvbnNvbmFudHMgPSBBcnJheXMuYXNMaXN0KCdiJywnYycsJ2QnLCdnJywnaCcsJ2snLCdsJywnbScsJ24nLCdwJywncicsJ3MnLCd0JywndicpOwogICAgcHVibGljIHN0YXRpYyBMaXN0PENoYXJhY3Rlcj4gdm93ZWxzID0gQXJyYXlzLmFzTGlzdCgnYScsJ2UnLCdpJywnbycpOwogCiAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBwYXR0ZXJuID0gImN2TEx2IjsgCiAKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBnZW5lcmF0ZShTdHJpbmdCdWlsZGVyIHdvcmQsIGludCBpbmRleCl7CiAgICAgICAgaWYgKHdvcmQubGVuZ3RoKCkgPT0gaW5kZXgpIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHdvcmQpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIExpc3Q8Q2hhcmFjdGVyPiBsZXR0ZXJTZXQgPSBudWxsOwogICAgICAgIGNoYXIgY3VycmVudENoYXJhY3RlciA9IHBhdHRlcm4uY2hhckF0KGluZGV4KTsKICAgICAgICBpZiAoY3VycmVudENoYXJhY3RlciA9PSBDT05TT05BTlRfU1lNQk9MKSB7CiAgICAgICAgICAgIGxldHRlclNldCA9IGNvbnNvbmFudHM7CiAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50Q2hhcmFjdGVyID09IFZPVkVMX1NZTUJPTCl7CiAgICAgICAgICAgIGxldHRlclNldCA9IHZvd2VsczsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBsZXR0ZXJTZXQgPSBBcnJheXMuYXNMaXN0KGN1cnJlbnRDaGFyYWN0ZXIpOwogICAgICAgIH0KCiAgICAgICAgZm9yIChDaGFyYWN0ZXIgbGV0dGVyIDogbGV0dGVyU2V0KSB7CiAgICAgICAgICAgIHdvcmQuc2V0Q2hhckF0KGluZGV4LCBsZXR0ZXIpOwogICAgICAgICAgICBnZW5lcmF0ZSh3b3JkLCBpbmRleCArIDEpOwogICAgICAgIH0KICAgIH0KIAogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIFN0cmluZ0J1aWxkZXIgd29yZCA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7CiAgICAgICAgd29yZC5zZXRMZW5ndGgocGF0dGVybi5sZW5ndGgoKSk7CiAgICAgICAgZ2VuZXJhdGUod29yZCwwKTsKICAgIH0KfQ==