Skip to content

Instantly share code, notes, and snippets.

@nhahtdh
Created February 5, 2015 04:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nhahtdh/e1bb0a94483e5279e3c2 to your computer and use it in GitHub Desktop.
Save nhahtdh/e1bb0a94483e5279e3c2 to your computer and use it in GitHub Desktop.
import java.util.Arrays;
import java.util.regex.Pattern;
public class G45295 {
public static void main(String[] args) {
String fail[] = {"uhmh", "umbs", "bczj", "uzxy", "efwr", "uoql", "pnlt", "knqj", "hxix", "peji", "cdmp", "knnx", "xnbe", "cgdp", "poht", "ulsy", "ltpi", "lxtp", "hlew", "xkfo", "fubp", "aspg", "fsou", "njoy", "opio", "ymne", "xjsp", "plol", "ivgf", "mdoj", "wnzm", "aqbi", "btjz", "xtxz", "dbie", "rrzc", "utas", "zald", "kfpm", "vsbq", "sknw", "rsxh", "umet", "bbqw", "jkvw", "lvsb", "xgvc", "vnhu", "hxmv", "gnia", "yghr", "vqur", "bior", "dwvf", "wpag", "cqai", "kcnc", "dzzu", "ypdj", "bdra", "iqjz", "yxxe", "nlpg", "nnmc", "vvck", "xtuj", "xona", "fopy", "jzhr", "jybk", "yydc", "ctlq", "ilav", "hfyi", "gndu", "ayis", "lbxo", "wgzw", "vkny", "zkeb", "gyzz", "lnyz", "inmd", "feeb", "opuc", "pdkf", "weid", "movj", "cgiq", "dzsr", "qeof", "zwnl", "svxx", "dbso", "hqgg", "tsnz", "gfjn", "tgbn", "iirp", "qqmh", "lufj", "mxol", "zput", "onij", "vcts", "bwso", "zzwt", "qvwa", "vwfm", "wbcb", "blhq", "kton", "isco", "zsqy", "numw", "mgjb", "ewbx", "tbng", "vkje", "qxed", "psmn", "kgje", "xync", "ubcm", "yibp", "qkyf", "rdda", "rqdv", "symz", "pbcg", "hdhv", "wbyf", "pkhs", "jrpe", "ymch", "rwvl", "ldin", "ehhh", "lqvj", "gceu", "qvpu", "tslw", "osti", "bxjz", "juni", "gdes", "zlkk", "bohd", "cqil", "hcds", "urfj", "ixkd", "xzeh", "tfys", "aujr", "ptwu", "bbrf", "vuwb", "jxus", "qyjr", "eabg", "mwvf", "papl", "zjkv", "yagc", "dgtd", "exgu", "zxjf", "bnrw", "cxld", "hwov", "tqbc", "buvc", "qbeg", "rbvt", "vhrj", "zilh", "qqbx", "tyat", "vipo", "siiq", "pjqx", "msxq", "hove", "fjkn", "wrnu", "epjm", "swxz", "avfr", "rmva", "lhcu", "qhzi", "xcvl", "pcja", "xdbj", "kxsz", "fmlj", "jyhu", "relv", "mrkt", "ldsz", "habl", "taug", "thdt", "hvcd", "cjit", "vare", "ghpd", "nmxg", "zkdh", "rrus", "uyiw", "bhnd", "oqaf", "tbgb", "aatx", "xzsk", "yedl", "abaw", "uodj", "mkjr", "ieqi", "pufg", "lnyj", "phzz", "hywk", "xihw", "hbvq", "cdqi", "htui", "hffy", "duvk", "syts", "klfx", "ozwn", "huzp", "qome", "htwj", "tgvd", "ttqu", "zpai", "iblt", "ohue", "yhno", "udle", "vyrg", "rpsu", "ltdq", "mvjg", "chia", "rhpn", "tyvh", "uaqr", "afir", "tman", "meqa", "bzfx", "jkxc", "nkbq", "xxkl", "sqvw", "gmlx", "fxqx", "wymg", "dvyo", "ccqe", "ymry", "unzj", "xzkb", "xutb", "uiod", "hzii", "qucx", "fodt", "pijy", "fgyb", "rjtn", "qeoq", "obmj", "ldsn", "novp", "wrgj", "wcqi", "oned", "rfnc", "mvbi", "xnek", "wssx", "kffr", "nuyv", "knkx", "hjvs", "sudd", "fdys", "vzvf", "dqpb", "yegp", "fouc", "elux", "knux", "maif", "zftj", "fchz", "yzxo", "rbkg", "cmht", "yftd", "ocbs", "rxbo", "geav", "zwrh", "jtoy", "ntzm", "tbcv", "nlbv", "iltf", "axrj", "sbtx", "ltmv", "itoo", "yyuz", "fhnn", "fihj", "dclv", "isxd", "oqby", "cooj", "idgo", "qdik", "hkfn", "lwrn", "klix", "fese", "tpcf", "anxj", "wcxw", "xsfc", "ztao", "uzuv", "wuad", "nkmy", "hutq", "jdkf", "mkzn", "fzjn", "glgi", "npgk", "arwd", "voob", "wihg", "eeiq", "ndyr", "cavo", "oemg", "uisl", "sezm", "eprv", "jzgr", "ccqa", "layj", "ynho", "ulol", "lcwa", "qzjv", "agdk", "hhvf", "ocgd", "jjim", "akwn", "krjr", "sjov", "ilcz", "xttz", "dppw", "hsrv", "pdzn", "xouk", "cuxk", "zrye", "brbn", "mnfy", "tzcs", "ikov", "vatu", "ufyy", "wbzp", "bhpn", "dnyp", "pryo", "mbrh", "eueo", "swue", "plbo", "blbu", "zelj", "midk", "tfsj", "pblj", "kpws", "beol", "hoic", "spqv", "vwem", "hzvs", "qwyu", "ivju", "eovs", "yola", "psoi", "mcza", "brti", "lypb", "uzdu", "lfmd", "ccqu", "dhom", "ycwf", "hjhr", "fhvb", "dbdy", "cyow", "yutr", "dtva", "ldmg", "sfgn", "aeig", "tzpv", "yqpw", "hwcn", "bfqf", "qtju", "lrra", "uwlu", "ypmm", "lxze", "spmp", "ucvr", "vlog", "gsqq", "qzzl", "gyrb", "zbhf", "xemc", "oudj", "tawb", "yfmj", "hlle", "zhbl", "lfsm", "nlny", "usnv", "cpoy", "toba", "cvpt", "ldbt", "drih", "errm", "ucqt", "zpkn", "cruh", "yxoc", "ifpj", "phyy", "mrsq", "beyo", "cals", "vpim", "oobu", "ninp", "tpcm", "cfma", "hihn", "gfmn", "sdko", "ppys", "xvyo", "czyr", "cluu", "glwd", "qljk", "zfom", "bxyl", "gpqb", "hliy", "jmmc", "hmdz", "pksg", "fpqe", "axtj", "fjhf", "ewzy", "xpyr", "ebni", "uhpp", "fqdl", "wgyu", "oqeh", "uvwi", "qzgq", "ndph", "ykin", "vyib", "krhk", "uvoe", "psfd", "qgat", "tnfg", "pplu", "icdq", "tjnp", "midd", "qbrc", "xuhk", "retx", "heio", "ichn", "pwjk", "wlwc", "kbcx", "dxhp", "ehoj", "ppfu", "mxkt", "mkod", "hdtz", "lmnh", "gdlc", "laee", "hmvt", "glgj", "xjnm", "doya", "ccsl", "znmx", "pekh", "zjgv", "matk", "axne", "uckr", "ptle", "wgzh", "xfwb", "njvv", "jman", "xkfi", "nesp", "oxsq", "mbxx", "rhvh", "tsrv", "vhqd", "dhkd", "jitq", "jcoy", "qman", "qiej", "elke", "vyxt", "szjo", "acyf", "hvar", "gnbl", "fqbv", "pqjy", "vklq", "ntbv", "amnw", "elxy", "jqbm", "yske", "lbsk", "jbjx", "asla", "tmbg", "icir", "peez", "phsy", "zjuh", "pljk", "lrxm", "ljxu", "mcpj", "iomf", "sdbr", "dxvb", "jkmq", "jxyv", "sasc", "picr", "jcjw", "pcba", "wgcc", "xhwn", "ckmz", "ernk", "iawe", "yrnx", "jocf", "ruil", "bdxd", "abgb", "ejiv", "wctd", "dczl", "xnvj", "ocou", "ucwq", "zrhq", "szld", "ddrr", "kiou", "oqqa", "ffjr", "memp", "seif", "zwqz", "cgeu", "eqlr", "fawt", "zydy", "izcf", "hecq", "firp", "gmhs", "czaa", "qowh", "dyiy", "fohk", "gtcm", "pcfz", "jlww", "bqsz", "estd", "wblw", "xunw", "orui", "aiii", "slpm", "nrxe", "dfhx", "rqem", "cfqp", "nlmr", "gxye", "oziq", "jele", "fyns", "fnmo", "hbcn", "immu", "lrei", "zswx", "axps", "yvxe", "bdij", "bubc", "qgyd", "yeyk", "oswk", "edff", "nlic", "srbo", "ulkj", "iieo", "biiu", "bhxe", "mply", "luhc", "wjzz", "srfc", "frgm", "hjam", "lcoy", "qihv", "dofd", "qski", "mmjj", "uhmk", "oors", "ogkc", "ynoy", "zmvo", "xple", "bkhn", "jbqk", "hpdi", "rnbw", "xjjw", "bbdc", "aopz", "wlpm", "wejf", "gwnl", "phei", "rkmk", "gxvh", "xdvq", "iule", "rygw", "varo", "shzu", "knyp", "rtpp", "myvi", "jhpt", "hjul", "jewv", "bzpv", "nrlt", "kwvg", "zewp", "hfjs", "kzhq", "ezmg", "mcse", "jncf", "apkb", "nrje", "ayps", "jetj", "ffij", "fywp", "nvfl", "yfdv", "afvq", "hexw", "svky", "ujeo", "xamh", "nnyd", "psbz", "hpmr", "mknd", "cvwd", "pvwa", "cjyr", "ogdx", "oemb", "sjyv", "wgtl", "ocoy", "quez", "iauz", "nfeu", "wqci", "qtof", "dati", "ynod", "jhji", "sxwn", "zsgc", "xvhw", "kyzk", "jmhz", "vnfc", "ifkw", "zcwl", "ypgo", "lkzc", "kqlx", "uahs", "bvsu", "ujvo", "rhlj", "jzhe", "llxg", "vdjt", "cyxr", "nwuq", "vgig", "dyie", "xrqs", "gmwm", "gysd", "vibt", "qmhl", "rufc", "yoiv", "czgu", "oltd", "lner", "ftpk", "pdmy", "rexh", "usql", "wesn", "qydf", "gtjo", "zsbh", "rfea", "gvev", "iuax", "ishb", "egvn", "jjpa", "vvyb", "ezuh", "wvka", "ytqj", "lezj", "gdtn", "czfp", "nmrb", "aekt", "emmo", "jwrt", "pnph", "oqac", "xivu", "fsai", "pwcj", "jbkh", "tnxb", "zjty", "hhzu", "ptyt", "osiw", "iykh", "wpks", "vpch", "rvrj", "hfmd", "hrxo", "jehl", "wery", "ekdb", "trxd", "ybus", "ttiy", "buqb", "thld", "cpsx", "pwvw", "qpmi", "gicj", "ceyk", "zhcb", "pode", "wkwv", "sbfh", "tjen", "gjod", "jqqn", "fytr", "ifsv", "gjbi", "uerf", "eanj", "kmig", "nbic", "mmmt", "idog", "gbjz", "bquc", "uldb", "uowe", "uqok", "pqyj", "jezt", "lhco", "uley", "daju", "bbvv", "ujej", "lxbv", "pfeg", "depg", "iqkl", "todt", "njoe", "wgmi", "jgcp", "kmkf", "rodc", "wozc", "kmll", "ageq", "dbat", "ekzo", "vmdm", "ehiy", "fofc", "yijd", "tuis", "ewgu", "mxin", "heyj", "mbwx", "focv", "dkvc", "ezoy", "ndtu", "sjbh", "keag", "iqye", "oecr", "wlso", "ahgm", "drfg", "wppe", "vryl", "nhcm", "wcxl", "qgul", "rdtf", "hkjt", "rynl", "agqd", "jyvc", "eqju", "zrwf", "cfnw", "ndjy", "oqhi", "erag", "oljn", "iebb", "xwpd", "mpot", "yrhv", "jasu", "dqmi", "syhj", "gyjj", "gfbl", "tbdp", "lsdc", "hpma", "wkzo", "qnsh", "grpx", "cinr", "nlod", "mokr", "sddp", "xvnq", "yeqt", "ulrf", "vjwc", "jeiv", "acgp", "fkqb", "cabm", "lgvm", "spse", "rmmm", "okfv", "yxdo", "ymxp", "dvmn", "upfs", "tkrc", "nuqs", "czps", "wqwg", "fnch", "zrny", "kakh", "rwgy", "xwce", "pxtd", "fcgw", "wtmy", "agtv", "ppdx", "vset", "aojs", "lsww", "ydmg", "jvhh", "adny", "azog", "gdhx", "lbbm", "szou", "jgqj", "hlli", "utif", "nxjj", "oefj", "oswr", "kqps", "rwxa", "ppor", "lymq", "ppjy", "fynv", "wkao", "wvjv", "jglw", "tllv", "yfef", "miul", "hwgi", "bvdo", "pjff", "hbru", "fhvo", "rogm", "rxxm", "fbfc", "nehe", "agkd", "dxtk", "rtyk", "bvbv", "dtpj", "lzvi", "etot", "blwg", "jlar", "ckpq", "dxxj", "qpdp", "kgma", "kgkf", "sgrm", "qcuo", "bcan", "czcb", "lqpe", "plpm", "qwku", "ovxm", "kxuq", "zuhz", "tcyl", "idlj", "kjfk", "eirv", "ciuz", "uoyd", "bbiw", "cknt", "vfba", "jwnd", "axav", "zvim", "vbmo", "uonc", "zsvb", "hjuq", "pcpz", "mtyz", "xofv", "mhpc", "fdts", "rvyw", "vxbu", "eexw", "uxoh", "ohwo", "bdgm", "etao", "mkze", "bvgt", "orcy", "zubm", "chkr", "aowj", "vjfz", "cnnl", "vhsj", "otlu", "spnq", "fvys", "vpao", "uffk", "dqnd", "agwm", "coqd", "uyii", "aofd", "tsxu", "aznc", "rlbw", "xbzd", "wdjn", "nvru", "omym", "xmda", "apay", "nvql", "ftjg", "jngv", "bqzt", "xstk", "kwht", "dhuk", "sllh", "yxyi", "vguf", "yzry", "kqvk", "qvza", "upja", "myyg", "vvtv", "arzc", "bwwg", "hbhp", "dipv", "vidi", "urxb", "joom", "qkhg", "mfds", "liyd", "rlpn", "ohvb", "ixtu", "xnoc", "zlgx", "ejti", "tlfz", "kiyn", "uzbq", "fncq", "abaj", "ohno", "rigf", "snrs", "ngcb", "mnbs", "dzhg", "sklu", "yjhw", "blwo", "ajnw", "tjvq", "pxnd", "fzjg", "dlef", "hrix", "foms", "rmow", "mfie", "ymxd", "mplm", "lrsq", "ptox", "kiyl", "zmqi", "jjfo", "uqrf", "cwaw", "hyuj", "eoex", "vlpe", "elzs", "shpx", "ogzi", "aaff", "ndnb", "qddv", "gsqs", "nogi", "fsdk", "vemj", "tcag", "zscu", "zlvw", "pfgd", "jatz", "xpku", "jjuk", "clis", "nqen", "zrlj", "nbam", "ahmg", "ptdy", "hgby", "qkna", "twgc", "skff", "bjxt", "sdbz", "xbbq", "qkyh", "madw", "dcnw", "ymah", "uaaj", "jllz", "smye", "rvdo", "hsah", "yykn", "hpfm", "pjwn", "yomh", "waeh", "ouza", "azuz", "dunq", "agxt", "qyvw", "eyxo", "kuyw", "wxfp", "gjjr", "fwzc", "znwm", "ujmh", "hjil", "qugg", "dqro", "tqtg", "qcme", "ozme", "tvvb", "lxzy", "sycm", "lrhs", "auqb", "vptl", "idkv", "ffxh", "cvic", "myqs", "plnc", "jcek", "rzkj", "kmje", "njgu", "qezg", "rgmk", "esyi", "wanw", "pcqn", "ynmp", "gjxc", "qvkl", "nnjc", "hkmu", "bvqw", "vbvj", "jfwe", "bziv", "qtxf", "aobu", "kxoe", "btyu", "pykg", "pkqn", "jreg", "thby", "crqo", "nzvf", "eknm", "mtqy", "arsi", "ojlv", "kfwb", "fmhi", "uvwp", "aamm", "dybv", "vzfg", "cyrj", "fwkv", "gwps", "fxej", "gxcf", "aojy", "mmoi", "wgzm", "pwya", "nsbh", "deod", "tsaa", "tvta", "eala", "fjjq", "mvho", "pqyo", "ljsz", "pwfg", "hywz", "hnvs", "nsik", "hxhf", "lvaz", "mibo", "cubf", "sqea", "fmha", "rplm", "ffwb", "utpm", "ihbb", "mtzk", "isnw", "cnxh", "qsua", "jluk", "yqvo", "nnfa", "oagm", "sipi", "hmqa", "jiij", "fzap", "shfb", "cofz", "xzhn", "qvjl", "nfwe", "fzhn", "lhzu", "tqkv", "yaag", "buoo", "pzxc", "alfk", "yzdd", "lnvx", "ktea", "ggyd", "nymd", "kktz", "dxdv", "uztq", "orhz", "aslu", "qsfh", "saqd", "nbzy", "zxwy", "xxxe", "vglt", "yeun", "foyz", "jchc", "gyhf", "nggo", "aoeu", "xitf", "fynu", "xfjk", "giim", "oejc", "rocc", "uhet", "lyyk", "zfpw", "eghv", "xced", "bruy", "wogo", "wrdl", "djpk", "jlmc", "exrp", "opdg", "cblx", "dlly", "uqkz", "tcum", "kikq", "jmhn", "mrju", "wzlb", "namm", "ffwk", "asba", "uzoo", "ktxy", "ypdi", "ytsn", "nsws", "woex", "ycdk", "koil", "fpon", "hhph", "duln", "vdad", "jdiv", "quyn", "zjbd", "mlkl", "xapk", "ckqz", "ibng", "vhxx", "fqec", "zgmu", "njtf", "xszv", "zvmd", "mzae", "ddkl", "yimk", "ybzq", "ftqc", "aohn", "ktpv", "zcdo", "ohtv", "znah", "flws", "zvge", "ysen", "twzu", "whid", "ovah", "surv", "isxk", "mgek", "yosc", "lqjo", "ofea", "jwhc", "woop", "npxd", "mzct", "auch", "qand", "nljn", "splr", "wtdl", "avef", "fvwu", "ruzy", "ryme", "rcin", "tbsm", "nycu", "jcaq", "jzgf", "sznc", "pyvh", "zcuk", "essr", "xfvj", "ltqt", "lqrk", "sphz", "rmwq", "gahb", "dvqt", "vriy", "tqdl", "lmqj", "uhcb", "fkqk", "xcpn", "vzfq", "ltqr", "ojir", "ephh", "qdrg", "eqms", "fnqi", "vgae", "lbcz", "paab", "acbq", "sfwr", "bpgw", "bwbt", "flfk", "fjlq", "djoq", "vapb", "jqqj", "wjma", "wuvv", "jczw", "buwy", "yplj", "raez", "zzsj", "qdep", "sukz", "rvwl", "dpkc", "ifjm", "dvbi", "ppfh", "jhaf", "sxfo", "mprf", "wjoz", "qail", "uslm", "gvxi", "wtmc", "giyx", "loza", "yalh", "savw", "nqlx", "cfce", "aesp", "urrr", "ztcj", "fofi", "dbzl", "yceo", "qjla", "xjvu", "hsey", "ftrm", "jhjt", "plko", "qqmy", "oghm", "byst", "ksqr", "qncd", "tiam", "ievj", "zies", "xenr", "gnse", "otzh", "qnby", "afut", "sfpp", "fzvi", "hsli", "afdr", "dpdw", "uccw", "hqxm", "egyh", "tggt", "faft", "rpos", "ftet", "grqp", "iluh", "xrny", "tuyu", "pmdk", "ygrr", "svcv", "fiva", "wnay", "immh", "trwr", "usgj", "vflm", "comf", "thxd", "broo", "tvvv", "wozn", "ueyz", "ychm", "xjze", "hagy", "redy", "ufqt", "mmpu", "dgun", "tstr", "iaeb", "seay", "dbwq", "fyuu", "msal", "xhpi", "lvno", "lopo", "trva", "vxrs", "wplt", "lall", "efan", "ennw", "cmfv", "lojs", "ngxx", "tzpt", "jqkz", "itcu", "lmpz", "xrst", "mwwk", "klvo", "lbkz", "seck", "zfuc", "qgxe", "iolj", "scpt", "czab", "klgn", "uuoi", "znsc", "igjj", "ywiy", "nelr", "drpd", "likt", "ucdz", "myjf", "cnze", "rfbo", "mpli", "xhov", "okxi", "osqh", "gcll", "hptd", "jszi", "mlib", "bsvg", "mtbd", "bcfx", "csma", "eexa", "ywxs", "eeor", "zaxh", "aptw", "iade", "xhuz", "ujje", "tcov", "agly", "ysen", "jhii", "tfxc", "xlpe", "psde", "jgmz", "nxzl", "kdjr", "fsax", "repo", "fptg", "tcvp", "ezgf", "tczp", "bsxl", "fpta", "jzaa", "nwpl", "fkpn", "roch", "zgac", "vqzr", "dtyi", "hqmh", "qbns", "hvcc", "oybd", "myzo", "zqzc", "vjpm", "kmcp", "ngza", "itjv", "vhas", "uewr", "hbiz", "xufy", "xhgg", "ginv", "pmoy", "txpe", "vdkh", "rnpx", "pvrd", "nlgz", "txdt", "mquh", "fvab", "mukj", "eugq", "adph", "bygh", "vdgz", "xweg", "odzk", "ikpx", "zduo", "dqpn", "hdbl", "mfyl", "ebqt", "ljtb", "rjvs", "kixy", "zpfn", "wsaj", "ucth", "dwcr", "sosq", "znnl", "vxpx", "nirb", "jcif", "nmph", "ivfn", "nypd", "zhvm", "ewxz", "ynyx", "lqlq", "fgdy", "ztqf", "satm", "wboq", "xhyu", "uuth", "aaid", "vhdm", "akfv", "ammf", "mtkq", "kyfn", "ggcx", "apys", "cjga", "byaj", "mwys", "uwfs", "lxyq", "boez", "rqtz", "gkoq", "jxbz", "otfg", "nzdf", "tdaj", "dnyr", "cgjq", "uvpf", "ideh", "ankf", "gjex", "jxeu", "yqbu", "ermh", "ztnj", "qhmd", "ebmh", "czmh", "tcph", "amkb", "wsif", "urtu", "ttbu", "safb", "ecwx", "hazi", "gojs", "okkw", "yddk", "hzvt", "vkad", "anan", "hljq", "qyod", "cspr", "tjfv", "qshj", "inav", "njgm", "ntgo", "qfdq", "dbgu", "kpxd", "skkv", "wdzv", "cgqv", "bdln", "vvkq", "bfrg", "qqhq", "fvhg", "jore", "ymfy", "lgvs", "elqa", "xnmd", "bzbo", "rloi", "dpta", "qpxo", "igyk", "cinr", "hnkh", "pgfk", "rvnz", "bzez", "jrpf", "gtdq", "vrht", "sgxe", "fygf", "phlj", "ketw", "jylj", "xaou", "vpxl", "fxqs", "vwht", "nfzq", "npdr", "bnaq", "xbku", "yiyk", "ksol", "sojf", "mrlx", "drtq", "xgon", "pejm", "gpsv", "fdja", "bwdu", "bple", "wygp", "nfro", "ybet", "zvim", "bamr", "nvrl", "ahtf", "gwkk", "lczx", "cqrv", "mqlz", "dtwa", "yoqy", "gbbo", "duul", "vyzt", "zcxl", "ijvr", "jdqz", "eokd", "ehdy", "zbsk", "igby", "psxp", "qgww", "ruyi", "aohw", "bfty", "oylj", "pjfl", "vyge", "ocvx", "fnap", "bzks", "ugwo", "lnyz", "lwfc", "fewx", "pdfz", "wlzh", "pjly", "sjyx", "unwh", "zgsd", "dwij", "aoqt", "hmwi", "xqqb", "phgk", "rcpj", "tnop", "cuhs", "jugp", "iubx", "qqel", "dddh", "rmvq", "kdey", "ebvd", "tnti", "qxdk", "rfhd", "ofdg", "vlcg", "crey", "oqld", "duit", "qdty", "unqh", "gzqw", "wgbi", "vlun", "hzim", "yudp", "zdot", "atph", "ackp", "tevm", "bhtm", "ryed", "tvip", "uupa", "xayh", "ezpe", "visn", "usek", "elqm", "oaxf", "weno", "iesk", "ojek", "tkqr", "kysq", "wclg", "cuej", "gtoe", "egbv", "biaz", "zegt", "gieb", "dcwp", "hldr", "pfjo", "jdic", "azvd", "sijk", "iuvo", "twsm", "ipxt", "ihyy", "rjlw", "nirb", "ugwk", "hrtx", "zzgp", "dhyv", "drbe", "qghg", "iasb", "ajmn", "glsx", "onbo", "dpbh", "cvrq", "jrbz", "thkf", "aqte", "gzrz", "uffy", "byxi", "hdft", "xqqz", "vjxg", "btzg", "trxg", "rwdd", "suji", "ldda", "dndp", "jqdn", "pjuu", "nltl", "kbis", "imgr", "nfeb", "kbjo", "crvc", "cqvj", "xukb", "bicw", "itza", "dilz", "zyuk", "pmsg", "tejv", "nuaz", "knkh", "xctf", "rfno", "cteq", "xmal", "gxbl", "oibe", "viqc", "ktsp", "nmzt", "fpwc", "emgv", "qxlc", "gbge", "lhjg", "scdy", "igdp", "zncm", "jfmw", "fnue", "subv", "byea", "rrlz", "mrzl", "qkke", "cktm", "juua", "qdla", "xtbq", "edjv", "kvfn", "kmux", "deds", "kdof", "sgan", "fobe", "xpfe", "rdhb", "zzsy", "zukz", "lzqg", "sokm", "qrfg", "blkb", "fmxr", "rrvx", "agzj", "gpev", "yyzh", "qdrk", "wrif", "cfem", "uumi", "bryi", "lupc", "ytir", "kfty", "amig", "qezp", "ygsd", "fbul", "hvyy", "jbwn", "uemx", "mpfb", "dhrt", "rseq", "rtia", "akdk", "vptc", "vxax", "kjwi", "rakm", "fakh", "nxny", "kuey", "famz", "repy", "oajt", "cvdp", "gsuv", "jcei", "ufyl", "ijpv", "kiew", "txip", "razp", "rwhr", "hmur", "yewt", "ndxu", "tmkm", "vwxr", "rzip", "xgyv", "uohd", "dnvf", "mvct", "bhyv", "hxmb", "iziy", "ybrg", "euqd", "xxxs", "dccx", "wpsa", "dcuz", "ikgk", "bssd", "jbgr", "hubz", "rjif", "buvu", "eeaq", "rffj", "riuj", "jcfu", "tefh", "nqqf", "scov", "huqy", "kyxv", "ycto", "rxqy", "zxmo", "uqds", "fygk", "pfki", "dhwv", "cbzt", "czqa", "tdax", "bqdi", "luhx", "pkon", "frav", "vemb", "immn", "dagt", "errl", "dabe", "wcab", "wzwh", "jumj", "umdv", "dllj", "fnxp", "ofxr", "jnbq", "bfok", "tkhy", "fuym", "zdeu", "uhxx", "twbu", "oqrd", "chjv", "abzk", "zjry", "bdnv", "dzrc", "bjjd", "nylh", "aczu", "qvyz", "sjoy", "oypz", "nhri", "whcs", "wynk", "zuyj", "pzic", "axmn", "wbov", "khey", "qclk", "urgu", "uryu", "vjwf", "grsa", "pvuz", "dpfm", "gyko", "xfjn", "hanb", "pcpy", "xcmy", "vwdb", "onev", "gcul", "mmgm", "vhun", "ddwp", "wxbp", "jcyz", "ylhe", "sjwm", "rbzw", "nost", "acso", "dyri", "gyey", "wxom", "bych", "bipj", "uzkd", "sztl", "oanj", "jnxj", "lpzn", "lgiq", "rwqo", "zrcm", "aann", "rsis", "hjpi", "cugz", "nxml", "cuwb", "sjtg", "wfwy", "cpcl", "gqiz", "qehf", "iaya", "ksos", "ffki", "wnjn", "tvpb", "rxtj", "zfqd", "shjv", "omht", "szbw", "onum", "vbbm", "hlgh", "chtx", "kiea", "okwf", "ikgd", "crpf", "gvga", "xyqe", "mtzo", "aanr", "jrln", "jznu", "iorm", "ovbt", "fioo", "yana", "vuqg", "qise", "gjbj", "fpxf", "qknp", "uhce", "rvpy", "qonj", "izkz"};
Arrays.sort(fail);
String success[] = {"abba", "abbe", "abby", "abed", "abel", "abet", "able", "ably", "abos", "abut", "aces", "ache", "acid", "acme", "acne", "acre", "acta", "acts", "adam", "adds", "aden", "afar", "agar", "aged", "agee", "ager", "ages", "agog", "ague", "aida", "aide", "aids", "aims", "ainu", "airs", "airy", "ajar", "ajax", "akin", "alan", "alar", "alas", "alba", "alec", "alee", "alex", "alfa", "alga", "ally", "alma", "alms", "aloe", "alps", "also", "alum", "alva", "amen", "ames", "amid", "ammo", "amok", "amos", "amyl", "anal", "andy", "anew", "anna", "anne", "anon", "ansi", "ante", "anti", "ants", "anus", "aped", "apes", "apex", "apse", "aqua", "arab", "arch", "arco", "arcs", "area", "ares", "argo", "arid", "arms", "army", "arpa", "arts", "asia", "asks", "atom", "atop", "aunt", "aura", "auto", "aver", "avid", "avis", "aviv", "avon", "avow", "away", "awed", "awls", "awry", "axed", "axel", "axer", "axes", "axis", "axle", "axon", "ayes", "babe", "baby", "bach", "back", "bade", "bags", "bail", "bait", "baja", "bake", "baku", "bald", "bale", "bali", "balk", "ball", "balm", "band", "bane", "bang", "bank", "bans", "barb", "bard", "bare", "bark", "barn", "barr", "bars", "bart", "base", "bash", "bask", "bass", "bath", "bats", "baud", "bawl", "bays", "bead", "beak", "beam", "bean", "bear", "beat", "beau", "beck", "beds", "beef", "been", "beep", "beer", "bees", "beet", "begs", "bela", "bell", "belt", "bely", "bend", "bent", "benz", "bern", "bert", "bess", "best", "beta", "bets", "bevy", "bias", "bibs", "bide", "bids", "bien", "bier", "bike", "bile", "bilk", "bill", "bind", "bing", "bini", "bins", "bird", "bite", "bits", "blab", "bled", "blew", "blip", "blob", "bloc", "blot", "blow", "blue", "blum", "blur", "boar", "boat", "bobs", "boca", "bode", "body", "boer", "bogs", "bohr", "boil", "bois", "bold", "boll", "bolt", "bomb", "bond", "bone", "bong", "bonn", "bony", "boob", "book", "boom", "boon", "boor", "boos", "boot", "bore", "borg", "born", "bose", "boss", "both", "bout", "bowl", "bows", "boyd", "boys", "brae", "brag", "bran", "bras", "brat", "bray", "bred", "brew", "brie", "brig", "brim", "brow", "bryn", "buck", "budd", "buds", "buff", "bugs", "bulb", "bulk", "bull", "bump", "bums", "bunk", "buns", "bunt", "buoy", "burl", "burn", "burp", "burr", "burt", "bury", "bush", "buss", "bust", "busy", "butt", "buys", "buzz", "byrd", "byte", "cabs", "cady", "cafe", "cage", "cain", "cake", "calf", "call", "calm", "came", "camp", "cane", "cans", "cant", "cape", "caps", "card", "care", "carl", "carp", "carr", "cars", "cart", "case", "cash", "cask", "cast", "cats", "cave", "cede", "cell", "celt", "cent", "cern", "chad", "chao", "chap", "char", "chat", "chef", "chen", "chew", "chic", "chin", "chip", "chit", "chop", "chou", "chum", "cite", "city", "clad", "clam", "clan", "clap", "claw", "clay", "clio", "clip", "clod", "clog", "clot", "club", "clue", "cluj", "coal", "coat", "coax", "cobb", "coca", "cock", "coco", "code", "cody", "coed", "cogs", "cohn", "coil", "coin", "coke", "cold", "cole", "colt", "comb", "come", "cone", "cook", "cool", "coon", "coop", "cope", "cops", "copy", "cord", "core", "cork", "corn", "cost", "cosy", "cots", "cove", "cowl", "cows", "cozy", "crab", "crag", "cram", "cray", "cree", "crew", "crib", "crop", "crow", "crud", "crux", "cruz", "cuba", "cube", "cubs", "cued", "cues", "cuff", "cull", "cult", "cups", "curb", "curd", "cure", "curl", "curs", "curt", "cusp", "cute", "cuts", "cyst", "czar", "dada", "dade", "dads", "dahl", "dale", "dali", "daly", "dame", "damn", "damp", "dams", "dana", "dane", "dare", "dark", "darn", "dart", "dash", "data", "date", "dave", "davy", "dawn", "days", "daze", "dead", "deaf", "deal", "dean", "dear", "debt", "deck", "deed", "deem", "deep", "deer", "defy", "dell", "demo", "dens", "dent", "deny", "desk", "deus", "dewy", "dial", "dice", "dido", "died", "diem", "dies", "diet", "digs", "dike", "dill", "dime", "dims", "dine", "ding", "dint", "dion", "dips", "dire", "dirt", "disc", "dish", "disk", "dive", "dock", "dodd", "doer", "does", "doge", "dogs", "dole", "doll", "dome", "done", "dons", "doom", "door", "dope", "dora", "dose", "dote", "dots", "doug", "dove", "down", "doze", "drab", "drag", "dram", "draw", "drew", "drip", "drop", "drug", "drum", "dual", "dubs", "duck", "duct", "duel", "dues", "duet", "duke", "dull", "duly", "dumb", "dump", "dune", "dung", "dunk", "dunn", "dupe", "dusk", "dust", "duty", "dyad", "dyed", "dyer", "dyes", "dyke", "dyne", "each", "earl", "earn", "earp", "ears", "ease", "east", "easy", "eats", "ebbs", "eben", "echo", "eddy", "eden", "edge", "edit", "edna", "eels", "egan", "eggs", "egos", "eire", "eked", "ekes", "elba", "elks", "ella", "elms", "else", "emil", "emit", "emma", "ends", "enid", "enos", "envy", "epic", "eras", "ergo", "eric", "erie", "erik", "eris", "erne", "eros", "errs", "espy", "etch", "even", "ever", "evil", "ewen", "ewes", "exam", "exec", "exit", "eyed", "eyer", "eyes", "ezra", "face", "fact", "fade", "fags", "fail", "fain", "fair", "fake", "falk", "fall", "fame", "fang", "fans", "fare", "farm", "fast", "fate", "fats", "faun", "fawn", "faze", "fear", "feat", "feed", "feel", "fees", "feet", "fell", "felt", "fend", "fern", "fess", "feud", "fiat", "fief", "fife", "figs", "fiji", "file", "fill", "film", "find", "fine", "fink", "finn", "fins", "fire", "firm", "fish", "fisk", "fist", "fits", "five", "flag", "flak", "flam", "flap", "flat", "flaw", "flax", "flea", "fled", "flee", "flew", "flex", "flip", "flit", "flog", "flop", "flow", "flue", "flux", "foal", "foam", "foci", "foes", "fogs", "fogy", "foil", "fold", "folk", "fond", "font", "food", "fool", "foot", "ford", "fore", "fork", "form", "fort", "foss", "foul", "four", "fowl", "fran", "frau", "fray", "fred", "free", "fret", "frey", "frog", "from", "frye", "fuel", "fuji", "full", "fume", "fund", "funk", "furs", "fury", "fuse", "fuss", "fuzz", "gags", "gail", "gain", "gait", "gale", "gall", "galt", "game", "gang", "gape", "gaps", "garb", "gary", "gash", "gasp", "gate", "gaul", "gave", "gawk", "gaze", "gear", "geld", "gels", "gems", "gene", "gent", "germ", "gets", "gift", "gild", "gill", "gilt", "gina", "ginn", "gino", "gins", "gird", "girl", "girt", "gist", "give", "glad", "glee", "glen", "glow", "glue", "glut", "gnat", "gnaw", "goad", "goal", "goat", "gobi", "gods", "goes", "goff", "gogh", "gold", "golf", "gone", "gong", "good", "goof", "gore", "gory", "gosh", "goto", "gout", "gown", "grab", "grad", "gram", "gray", "greg", "grew", "grey", "grid", "grim", "grin", "grip", "gris", "grit", "grow", "grub", "guam", "gulf", "gull", "gulp", "gums", "guns", "guru", "gush", "gust", "guts", "guys", "gwen", "gwyn", "gyro", "haag", "haas", "hack", "hahn", "hail", "hair", "hale", "half", "hall", "halt", "hams", "hand", "hang", "hans", "hard", "hare", "hark", "harm", "harp", "hart", "hash", "hate", "hats", "haul", "have", "hawk", "hays", "haze", "hazy", "head", "heal", "heap", "hear", "heat", "hebe", "heck", "heed", "heel", "heir", "held", "hell", "helm", "help", "hemp", "hems", "hens", "hera", "herb", "herd", "here", "hero", "herr", "hers", "hess", "hews", "hick", "hide", "high", "hike", "hill", "hilt", "hind", "hint", "hips", "hire", "hiss", "hits", "hive", "hoar", "hoes", "hoff", "hogs", "hold", "hole", "holm", "holy", "home", "homo", "hone", "hood", "hoof", "hook", "hoop", "hoot", "hope", "hopi", "hops", "horn", "hose", "host", "hour", "howe", "howl", "hoyt", "hubs", "huck", "hues", "huey", "huge", "hugh", "hugo", "hull", "hume", "hump", "hums", "hung", "hunk", "huns", "hunt", "hurd", "hurl", "hurt", "hush", "husk", "huts", "hyde", "hymn", "ibex", "ibid", "ibis", "iced", "ices", "icon", "idea", "idem", "idle", "idly", "idol", "ifni", "igor", "ills", "illy", "imps", "inca", "inch", "indo", "indy", "inks", "inns", "into", "ions", "iota", "iowa", "iran", "iraq", "ires", "iris", "irks", "irma", "iron", "isis", "isle", "itch", "itel", "item", "ivan", "jabs", "jack", "jade", "jail", "jake", "jams", "jane", "jars", "java", "jaws", "jazz", "jean", "jeep", "jeer", "jeff", "jerk", "jest", "jets", "jews", "jigs", "jill", "joan", "jobs", "jody", "joel", "joes", "jogs", "john", "join", "joke", "jolt", "jose", "jots", "jove", "joys", "juan", "judd", "jude", "judo", "judy", "jugs", "july", "jump", "june", "jung", "junk", "juno", "jura", "jure", "jury", "just", "kahn", "kali", "kane", "kant", "karl", "karp", "kate", "katz", "keel", "keen", "keep", "kemp", "kent", "kept", "kern", "kerr", "keys", "kick", "kids", "kiel", "kiev", "kill", "kind", "king", "kink", "kirk", "kiss", "kite", "kits", "klan", "klux", "knee", "knew", "knit", "knob", "knot", "know", "knox", "koch", "kong", "kudo", "kuhn", "kurd", "kurt", "labs", "lace", "lack", "lacy", "lads", "lady", "lags", "laid", "lain", "lair", "lake", "lamb", "lame", "lamp", "lana", "land", "lane", "lang", "laos", "laps", "lard", "lark", "lars", "lash", "lass", "last", "late", "laue", "lava", "lawn", "laws", "lays", "lazy", "lead", "leaf", "leak", "lean", "leap", "lear", "leek", "leer", "lees", "left", "legs", "lena", "lend", "lens", "lent", "leon", "less", "lest", "lets", "levi", "levy", "lewd", "liar", "lice", "lick", "lids", "lied", "lien", "lies", "lieu", "life", "lift", "like", "lila", "lily", "lima", "limb", "lime", "limp", "lind", "line", "link", "lint", "lion", "lips", "lisa", "lise", "lisp", "liss", "list", "live", "load", "loaf", "loan", "lobe", "loci", "lock", "loeb", "loft", "logo", "logs", "loin", "lois", "loki", "lola", "lomb", "lome", "lone", "long", "look", "loom", "loon", "loop", "loot", "lord", "lore", "lose", "loss", "lost", "lots", "loud", "lout", "love", "lowe", "lows", "luck", "lucy", "luis", "luke", "lull", "lump", "lund", "lung", "lura", "lure", "lurk", "lush", "lust", "lute", "lutz", "lyle", "lynn", "lynx", "lyon", "lyra", "lyre", "mace", "mach", "made", "maid", "mail", "maim", "main", "make", "male", "mali", "mall", "malt", "mama", "mane", "mann", "mans", "many", "maps", "marc", "mare", "mark", "mars", "mart", "marx", "mary", "mash", "mask", "mass", "mast", "mate", "math", "mats", "matt", "maul", "mawr", "maya", "mayo", "maze", "mead", "meal", "mean", "meat", "meek", "meet", "melt", "memo", "mend", "mens", "menu", "mere", "mesh", "mess", "meta", "mete", "mets", "mews", "mica", "mice", "mick", "mien", "mike", "mild", "mile", "milk", "mill", "mimi", "mind", "mine", "mini", "mink", "mint", "mips", "mira", "mire", "miss", "mist", "moan", "moat", "mobs", "mock", "mode", "moen", "mohr", "mold", "mole", "moll", "mona", "monk", "mont", "mood", "moon", "moor", "moot", "mops", "more", "morn", "moss", "most", "moth", "move", "mows", "much", "muck", "mudd", "muff", "mugs", "muir", "mule", "mull", "mung", "muse", "mush", "musk", "must", "mute", "mutt", "muzo", "myra", "myth", "nags", "nagy", "nail", "nair", "name", "naps", "nary", "nasa", "nash", "nate", "nato", "naur", "navy", "nazi", "neal", "near", "neat", "neck", "need", "neff", "neil", "nell", "neon", "nero", "ness", "nest", "nets", "neva", "news", "newt", "next", "nice", "nick", "nigh", "nile", "nina", "nine", "nips", "noah", "node", "nods", "noel", "noll", "none", "nook", "noon", "nora", "norm", "nose", "note", "noun", "nude", "null", "numb", "nuns", "nuts", "oaks", "oars", "oath", "oats", "obey", "oboe", "odds", "odes", "odin", "odor", "offs", "ohio", "oils", "oily", "okay", "olaf", "olav", "oldy", "oleg", "olga", "olin", "oman", "omen", "omit", "once", "ones", "only", "onto", "onus", "onyx", "ooze", "opal", "opec", "opel", "open", "opts", "opus", "oral", "ores", "orgy", "orin", "orly", "oslo", "otis", "otto", "ouch", "ours", "oust", "outs", "oval", "oven", "over", "ovid", "owed", "owen", "owes", "owls", "owns", "oxen", "pace", "pack", "pact", "pads", "page", "paid", "pail", "pain", "pair", "pale", "pall", "palm", "palo", "pals", "pane", "pang", "pans", "pant", "papa", "parc", "pare", "park", "parr", "pars", "part", "paso", "pass", "past", "pate", "path", "pats", "paul", "pave", "pawn", "paws", "pays", "peak", "peal", "pear", "peas", "peat", "peck", "peek", "peel", "peep", "peer", "pegs", "pelt", "pend", "penh", "penn", "pens", "pent", "perk", "peru", "pest", "pete", "pets", "pews", "phil", "pica", "pick", "pict", "pier", "pies", "pigs", "pike", "pile", "pill", "pimp", "pine", "ping", "pink", "pins", "pint", "pion", "pipe", "pisa", "piss", "pith", "pits", "pitt", "pity", "pius", "plan", "play", "plea", "plod", "plot", "plow", "ploy", "plug", "plum", "plus", "pods", "poem", "poet", "pogo", "poke", "pole", "polk", "poll", "polo", "pomp", "pond", "pong", "pony", "pool", "poor", "pope", "pops", "pore", "pork", "port", "pose", "posh", "post", "pots", "pour", "pout", "pray", "prep", "prey", "prim", "prod", "prop", "pros", "prow", "pubs", "puff", "pugh", "puke", "pull", "pulp", "puma", "pump", "puns", "punt", "puny", "pupa", "pups", "pure", "purr", "push", "puss", "puts", "putt", "pyle", "pyre", "quad", "quay", "quip", "quit", "quiz", "race", "rack", "raft", "rage", "rags", "raid", "rail", "rain", "rake", "ramo", "ramp", "rams", "rand", "rang", "rank", "rant", "rape", "raps", "rapt", "rare", "rash", "rasp", "rate", "rats", "raul", "rave", "rays", "raze", "read", "real", "ream", "reap", "rear", "redo", "reds", "reed", "reef", "reel", "reid", "rein", "rely", "remy", "rena", "rend", "rene", "reno", "rent", "rest", "reub", "rhea", "ribs", "rica", "rice", "rich", "rick", "rico", "ride", "rids", "rift", "riga", "rigs", "rill", "rime", "rims", "rind", "ring", "rink", "riot", "ripe", "rips", "risc", "rise", "risk", "rite", "ritz", "road", "roam", "roar", "robe", "robs", "rock", "rode", "rods", "role", "roll", "rome", "romp", "roof", "rook", "room", "root", "rope", "rosa", "rose", "ross", "rosy", "roth", "rots", "rout", "rove", "rowe", "rows", "roxy", "rube", "rubs", "ruby", "rude", "rudy", "rugs", "ruin", "rule", "rump", "rung", "runs", "runt", "rush", "russ", "rust", "ruth", "ruts", "ryan", "sack", "safe", "saga", "sage", "sags", "said", "sail", "sake", "sale", "salk", "salt", "salz", "same", "sana", "sand", "sane", "sang", "sank", "saps", "sara", "sari", "sash", "sate", "saud", "saul", "save", "saws", "says", "scab", "scan", "scar", "scot", "scow", "scud", "seal", "seam", "sean", "sear", "seas", "seat", "sect", "seed", "seek", "seem", "seen", "seep", "seer", "sees", "self", "sell", "semi", "send", "sent", "sept", "serf", "seth", "sets", "sews", "sexy", "sham", "shea", "shed", "shin", "ship", "shit", "shod", "shoe", "shop", "shot", "show", "shun", "shut", "siam", "sian", "sick", "side", "sift", "sigh", "sign", "sikh", "silk", "sill", "silo", "silt", "sims", "sine", "sing", "sink", "sins", "sips", "sire", "sirs", "site", "sits", "situ", "siva", "size", "skew", "skid", "skim", "skin", "skip", "skis", "skit", "skye", "slab", "slam", "slap", "slat", "slav", "slay", "sled", "slew", "slid", "slim", "slip", "slit", "slob", "slop", "slot", "slow", "slug", "slum", "slur", "smog", "smug", "smut", "snag", "snap", "snip", "snob", "snow", "snub", "snug", "soak", "soap", "soar", "sobs", "sock", "soda", "sods", "sofa", "soft", "soil", "sold", "sole", "solo", "some", "song", "sons", "sony", "soon", "soot", "sore", "sort", "soul", "soup", "sour", "sown", "soya", "span", "spat", "spec", "sped", "spin", "spit", "spot", "spun", "spur", "stab", "stag", "stan", "star", "stay", "stem", "step", "stew", "stir", "stop", "stow", "stub", "stud", "stun", "styx", "subs", "such", "suck", "suds", "sued", "sues", "suez", "suit", "sulk", "sums", "sung", "sunk", "suns", "sure", "surf", "swab", "swam", "swan", "swap", "swat", "sway", "swim", "swum", "tabs", "tack", "tact", "taft", "tags", "tail", "take", "tale", "talk", "tall", "tame", "tang", "tank", "taos", "tape", "taps", "tara", "tart", "task", "tass", "tate", "taut", "taxi", "team", "tear", "teas", "teem", "teen", "tell", "tend", "tens", "tent", "term", "tess", "test", "text", "thai", "than", "that", "thaw", "thea", "them", "then", "they", "thin", "this", "thor", "thud", "thug", "thus", "tick", "tide", "tidy", "tied", "tier", "ties", "tile", "till", "tilt", "time", "tims", "tina", "tins", "tint", "tiny", "tips", "tire", "tito", "tits", "toad", "toby", "todd", "toes", "togo", "toil", "told", "toll", "tomb", "tone", "toni", "tons", "took", "tool", "tops", "tore", "torn", "tory", "toss", "toto", "tour", "town", "toys", "trap", "tray", "tree", "trek", "trim", "trio", "trip", "trod", "trot", "troy", "true", "truk", "tube", "tubs", "tuck", "tuft", "tugs", "tune", "turf", "turn", "twas", "twig", "twin", "twos", "type", "typo", "ugly", "ulan", "undo", "unit", "unix", "unix", "unto", "upon", "urdu", "urge", "uris", "urns", "ursa", "used", "user", "uses", "utah", "vail", "vain", "vale", "vane", "vans", "vary", "vase", "vast", "vats", "veal", "veda", "veer", "vega", "veil", "vein", "vela", "venn", "vent", "vera", "verb", "vern", "very", "vest", "veto", "vial", "vice", "vida", "vied", "vier", "vies", "viet", "view", "vile", "vine", "visa", "vita", "vito", "void", "volt", "voss", "vote", "vows", "waco", "wade", "waft", "wage", "wags", "wahl", "wail", "wait", "wake", "walk", "wall", "walt", "wand", "wane", "wang", "want", "ward", "ware", "warm", "warn", "warp", "wars", "wart", "wary", "wash", "wasp", "wave", "waxy", "ways", "weak", "wean", "wear", "webb", "webs", "weds", "weed", "week", "weep", "wehr", "weld", "well", "went", "wept", "were", "west", "wets", "what", "when", "whim", "whip", "whit", "whiz", "whom", "wick", "wide", "wier", "wife", "wigs", "wild", "wile", "will", "wilt", "wily", "wind", "wine", "wing", "wink", "wins", "wipe", "wire", "wiry", "wise", "wish", "wisp", "with", "wits", "witt", "woke", "wolf", "womb", "wong", "wont", "wood", "woof", "wool", "woos", "word", "wore", "work", "worm", "worn", "wove", "wrap", "wren", "writ", "wynn", "yagi", "yale", "yank", "yard", "yarn", "yawn", "year", "yeas", "yell", "yelp", "yoke", "york", "yost", "your", "yuba", "yuki", "yuri", "yves", "zeal", "zero", "zest", "zeus", "zinc", "zion", "zone", "zoom", "zoos", "zorn", "zulu"};
Arrays.sort(success);
// Pattern re = Pattern.compile("^(?!.+[jq]|[^aeiou][^aeiouhlr]).(?![^aeiouy]{3}|[x-z])|^s[cknptw]");
Pattern re = Pattern.compile("^(?!.+[jq]|[^aeiou][^aeiouhlr]|.[^aeiouy]{3}|.[x-z])|^s[cknptw]");
int ok[] = new int[2];
int bad[] = new int[2];
for (String s: success) {
if (re.matcher(s).find()) {
ok[0]++;
// System.out.println(s);
} else {
bad[0]++;
// System.out.println(s);
}
}
for (String s: fail) {
if (re.matcher(s).find()) {
bad[1]++;
// System.out.println(s);
} else {
ok[1]++;
}
}
System.out.printf("Good: %d %d\n", ok[0], ok[1]);
System.out.printf("Bad: %d %d\n", bad[0], bad[1]);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment