Commits

Anonymous committed 7b8abed

initial commit

Comments (0)

Files changed (5)

+*.hi
+*.o
+Main
+module AlchemyTask (solveAlchemyTask) where
+
+import Vocabulary
+import Data.Graph.AStar
+import qualified Data.Set as S
+
+nearbyStates st = 
+  filter near vocabulary
+  where
+    near = (==1).sum.zipWith 
+      (\a b -> if a == b then 0 else 1) st
+
+alchemyHeuristic target st = 
+    (foldl (\len (c1, c2) -> if c1 == c2 then len - 1 else len) 
+     (length target) $ zip st target)
+
+solveAlchemyTask :: String -> String -> [String]
+solveAlchemyTask start goal =
+  case rslt of
+    Nothing -> []
+    Just x -> x
+  where
+    rslt = aStar (S.fromList.nearbyStates)  (\_ _ -> 1) (alchemyHeuristic goal)
+             (== goal) start
+module Main where
+
+import AlchemyTask
+
+writeList lst = do
+  putStrLn $ concatMap (++ " ") lst
+
+main = do
+  writeList $ solveAlchemyTask "муха" "слон" -- 9
+module Vocabulary where
+
+vocabulary = [
+   "ааре",
+   "ааюн",
+   "абаз",
+   "абай",
+   "абак",
+   "абба",
+   "аббе",
+   "абдо",
+   "абзу",
+   "абих",
+   "абов",
+   "аваз",
+   "авда",
+   "авен",
+   "авиа",
+   "авив",
+   "авим",
+   "авит",
+   "авро",
+   "авто",
+   "агав",
+   "агам",
+   "аган",
+   "агар",
+   "агат",
+   "агау",
+   "агео",
+   "агин",
+   "агиш",
+   "агни",
+   "агол",
+   "агра",
+   "адад",
+   "адам",
+   "адан",
+   "адас",
+   "адат",
+   "адда",
+   "аден",
+   "аджи",
+   "адов",
+   "адур",
+   "адью",
+   "адян",
+   "ажан",
+   "ажбе",
+   "ажио",
+   "ажур",
+   "азад",
+   "азан",
+   "азас",
+   "азат",
+   "азау",
+   "азел",
+   "азеф",
+   "азид",
+   "азия",
+   "азов",
+   "азот",
+   "азур",
+   "азям",
+   "аида",
+   "аист",
+   "аита",
+   "айва",
+   "айвз",
+   "айги",
+   "айда",
+   "айер",
+   "айни",
+   "айны",
+   "айон",
+   "айфе",
+   "акан",
+   "акер",
+   "аким",
+   "аком",
+   "акри",
+   "аксу",
+   "актг",
+   "акте",
+   "акты",
+   "акче",
+   "акын",
+   "алад",
+   "алат",
+   "алаш",
+   "алга",
+   "алей",
+   "ален",
+   "алет",
+   "алеш",
+   "алим",
+   "алиш",
+   "алия",
+   "алле",
+   "алло",
+   "ални",
+   "алоа",
+   "алов",
+   "алоэ",
+   "алур",
+   "алый",
+   "альи",
+   "альт",
+   "аман",
+   "амат",
+   "амба",
+   "амга",
+   "амдо",
+   "амик",
+   "амис",
+   "амка",
+   "амми",
+   "амой",
+   "амок",
+   "амон",
+   "амос",
+   "амур",
+   "анар",
+   "анат",
+   "анау",
+   "андо",
+   "анды",
+   "анже",
+   "анжу",
+   "анид",
+   "анис",
+   "анкх",
+   "анна",
+   "аноа",
+   "анод",
+   "анса",
+   "анти",
+   "анты",
+   "ануй",
+   "анус",
+   "анюй",
+   "апас",
+   "апаш",
+   "апиа",
+   "апис",
+   "апиц",
+   "аплу",
+   "апоп",
+   "апсу",
+   "апте",
+   "арад",
+   "арак",
+   "арап",
+   "арат",
+   "арба",
+   "арго",
+   "арди",
+   "арен",
+   "арес",
+   "аржн",
+   "арии",
+   "арий",
+   "арис",
+   "ария",
+   "арка",
+   "арли",
+   "арль",
+   "арма",
+   "арнд",
+   "арно",
+   "арон",
+   "арпа",
+   "арро",
+   "арто",
+   "аруз",
+   "арфа",
+   "арча",
+   "арык",
+   "арыс",
+   "асад",
+   "асва",
+   "асоп",
+   "аспр",
+   "асэб",
+   "атаи",
+   "атас",
+   "атже",
+   "атли",
+   "атом",
+   "атон",
+   "атри",
+   "атум",
+   "атур",
+   "аура",
+   "ауто",
+   "ауфи",
+   "ауце",
+   "ауэр",
+   "афар",
+   "афон",
+   "афро",
+   "афты",
+   "ахей",
+   "ахен",
+   "ахим",
+   "ахрр",
+   "ахсу",
+   "ахти",
+   "ахун",
+   "ахцу",
+   "ахче",
+   "ачем",
+   "ачех",
+   "ашар",
+   "ашуг",
+   "аэды",
+   "баал",
+   "баас",
+   "баба",
+   "баби",
+   "бабр",
+   "бадб",
+   "баде",
+   "баев",
+   "база",
+   "баит",
+   "баиф",
+   "баия",
+   "байт",
+   "бака",
+   "бакр",
+   "бакт",
+   "баку",
+   "бакы",
+   "бакэ",
+   "бали",
+   "балл",
+   "бана",
+   "банг",
+   "бани",
+   "банк",
+   "бант",
+   "банф",
+   "бань",
+   "баня",
+   "бард",
+   "бари",
+   "барк",
+   "барн",
+   "барс",
+   "барт",
+   "басе",
+   "баст",
+   "басф",
+   "басы",
+   "бата",
+   "бати",
+   "батт",
+   "батя",
+   "баул",
+   "баур",
+   "бахт",
+   "бачо",
+   "баян",
+   "бгто",
+   "беби",
+   "бега",
+   "беда",
+   "беди",
+   "беза",
+   "безе",
+   "безо",
+   "безу",
+   "бейт",
+   "белз",
+   "бели",
+   "белл",
+   "бело",
+   "бель",
+   "беме",
+   "бени",
+   "бенн",
+   "бент",
+   "бену",
+   "берг",
+   "берд",
+   "берк",
+   "берн",
+   "берч",
+   "берш",
+   "бест",
+   "бесы",
+   "бета",
+   "бете",
+   "бети",
+   "бечо",
+   "бзик",
+   "бзнс",
+   "библ",
+   "бива",
+   "бигл",
+   "бидл",
+   "бидо",
+   "бизе",
+   "бийя",
+   "бикс",
+   "билл",
+   "било",
+   "биль",
+   "бимс",
+   "бине",
+   "бини",
+   "бинт",
+   "биом",
+   "бира",
+   "бирд",
+   "бирс",
+   "биса",
+   "биск",
+   "бита",
+   "бить",
+   "биша",
+   "бишь",
+   "биэн",
+   "блан",
+   "блат",
+   "блау",
+   "блеф",
+   "блие",
+   "близ",
+   "блик",
+   "блин",
+   "блиц",
+   "блок",
+   "блох",
+   "блуа",
+   "блуд",
+   "блул",
+   "блум",
+   "блэк",
+   "блэр",
+   "блюз",
+   "блюм",
+   "боас",
+   "боби",
+   "бобо",
+   "бобр",
+   "бобы",
+   "бове",
+   "бовт",
+   "боде",
+   "бодо",
+   "боек",
+   "боец",
+   "боёк",
+   "боже",
+   "боза",
+   "бозе",
+   "бойе",
+   "бойи",
+   "бойм",
+   "бойс",
+   "бокс",
+   "бола",
+   "боли",
+   "болл",
+   "болт",
+   "болч",
+   "боль",
+   "бома",
+   "боме",
+   "бомж",
+   "бому",
+   "бонд",
+   "бонн",
+   "боны",
+   "бопп",
+   "бора",
+   "борд",
+   "бори",
+   "борн",
+   "борт",
+   "борщ",
+   "босс",
+   "боты",
+   "боуи",
+   "боцу",
+   "боэф",
+   "боян",
+   "браз",
+   "брай",
+   "брак",
+   "брам",
+   "бран",
+   "брас",
+   "брат",
+   "брач",
+   "бред",
+   "брей",
+   "брем",
+   "брес",
+   "брёх",
+   "бриг",
+   "бриз",
+   "брно",
+   "брод",
+   "брок",
+   "бром",
+   "брох",
+   "брук",
+   "брум",
+   "брус",
+   "брут",
+   "брык",
+   "брюк",
+   "брюс",
+   "брют",
+   "бряк",
+   "буде",
+   "будь",
+   "буер",
+   "бужи",
+   "буза",
+   "буйо",
+   "бука",
+   "буки",
+   "букс",
+   "буле",
+   "буль",
+   "буна",
+   "бунд",
+   "бунт",
+   "бура",
+   "бург",
+   "буре",
+   "бурж",
+   "бури",
+   "бурт",
+   "буру",
+   "бурш",
+   "буры",
+   "бурэ",
+   "буря",
+   "буса",
+   "буск",
+   "бусы",
+   "бутс",
+   "буфф",
+   "буфы",
+   "буча",
+   "буше",
+   "буян",
+   "быки",
+   "было",
+   "быль",
+   "быть",
+   "бьеф",
+   "бэлс",
+   "бэрд",
+   "бэсм",
+   "бюро",
+   "бюст",
+   "бюше",
+   "бязь",
+   "бяка",
+   "ваал",
+   "вага",
+   "вади",
+   "ваер",
+   "важи",
+   "ваза",
+   "вайс",
+   "вайц",
+   "вайя",
+   "вакф",
+   "вакх",
+   "вали",
+   "валк",
+   "вамп",
+   "вани",
+   "ванф",
+   "ванч",
+   "ваны",
+   "вара",
+   "васа",
+   "васу",
+   "вата",
+   "ватт",
+   "вафд",
+   "вахш",
+   "ваци",
+   "вача",
+   "ваша",
+   "ваше",
+   "ваши",
+   "вбок",
+   "ввек",
+   "ввод",
+   "ввоз",
+   "вгиб",
+   "вгик",
+   "вгон",
+   "вдох",
+   "вебб",
+   "веве",
+   "вега",
+   "веди",
+   "веды",
+   "ведь",
+   "веер",
+   "вежа",
+   "вейи",
+   "вейн",
+   "вейс",
+   "вейц",
+   "веки",
+   "веко",
+   "велд",
+   "велс",
+   "вена",
+   "венд",
+   "вено",
+   "вены",
+   "вера",
+   "верн",
+   "верп",
+   "верт",
+   "верх",
+   "вест",
+   "весы",
+   "весь",
+   "вето",
+   "веха",
+   "вехи",
+   "вече",
+   "вещи",
+   "вещь",
+   "вжик",
+   "взад",
+   "взор",
+   "виам",
+   "виан",
+   "виви",
+   "виво",
+   "виги",
+   "виго",
+   "вида",
+   "виды",
+   "виет",
+   "виже",
+   "виза",
+   "визг",
+   "визе",
+   "вика",
+   "вико",
+   "викс",
+   "вила",
+   "вилт",
+   "вилы",
+   "вина",
+   "вини",
+   "вино",
+   "винт",
+   "винь",
+   "вира",
+   "вирт",
+   "вист",
+   "витт",
+   "вить",
+   "виши",
+   "вишь",
+   "вкус",
+   "влёт",
+   "вмиг",
+   "вниз",
+   "внук",
+   "вода",
+   "воды",
+   "водь",
+   "воже",
+   "воин",
+   "войт",
+   "волк",
+   "воля",
+   "вона",
+   "вонь",
+   "ворс",
+   "ворт",
+   "воск",
+   "вошь",
+   "вояж",
+   "враг",
+   "враз",
+   "врач",
+   "вред",
+   "врио",
+   "вруб",
+   "врун",
+   "вряд",
+   "всем",
+   "вснх",
+   "всуе",
+   "всяк",
+   "втуз",
+   "втык",
+   "втэк",
+   "вудс",
+   "вулф",
+   "вход",
+   "вхож",
+   "вцик",
+   "вщиж",
+   "вымь",
+   "вымя",
+   "выпи",
+   "выпь",
+   "выру",
+   "выси",
+   "высь",
+   "выть",
+   "выше",
+   "вьюк",
+   "вьюн",
+   "вюрц",
+   "вязь",
+   "вяло",
+   "гааз",
+   "габо",
+   "габт",
+   "гавр",
+   "гага",
+   "гаги",
+   "гаде",
+   "гады",
+   "гаер",
+   "гажа",
+   "газа",
+   "гази",
+   "газы",
+   "гаий",
+   "гала",
+   "гали",
+   "гало",
+   "галс",
+   "гама",
+   "гана",
+   "ганг",
+   "ганн",
+   "ганс",
+   "ганф",
+   "ганч",
+   "гари",
+   "гарм",
+   "гарт",
+   "гарц",
+   "гарь",
+   "гасс",
+   "гатт",
+   "гаты",
+   "гать",
+   "гаук",
+   "гаур",
+   "гауя",
+   "гафт",
+   "гафы",
+   "гаха",
+   "гахн",
+   "гаюи",
+   "гаял",
+   "гвид",
+   "гдов",
+   "геба",
+   "гезы",
+   "гейм",
+   "гели",
+   "гель",
+   "генк",
+   "гент",
+   "генц",
+   "гера",
+   "герб",
+   "герд",
+   "герр",
+   "герц",
+   "герш",
+   "гесс",
+   "гете",
+   "геты",
+   "геть",
+   "гехт",
+   "геэз",
+   "гиас",
+   "гидр",
+   "гиза",
+   "гизе",
+   "гизо",
+   "гизы",
+   "гилл",
+   "гиль",
+   "гимн",
+   "гини",
+   "гипс",
+   "гира",
+   "гирд",
+   "гири",
+   "гирс",
+   "гиря",
+   "гифу",
+   "гифы",
+   "глаз",
+   "глас",
+   "глей",
+   "глия",
+   "глот",
+   "глюк",
+   "гнев",
+   "гнет",
+   "гнёт",
+   "гной",
+   "гном",
+   "гнус",
+   "гоар",
+   "гоба",
+   "гоби",
+   "гога",
+   "годы",
+   "гоже",
+   "гойя",
+   "голд",
+   "голо",
+   "голь",
+   "гоми",
+   "гонг",
+   "гонт",
+   "гора",
+   "горб",
+   "горд",
+   "горе",
+   "гори",
+   "горн",
+   "горы",
+   "гост",
+   "гота",
+   "готы",
+   "гофр",
+   "гояс",
+   "граб",
+   "град",
+   "грай",
+   "грам",
+   "гран",
+   "грас",
+   "граф",
+   "грац",
+   "грач",
+   "грег",
+   "грез",
+   "грей",
+   "грен",
+   "грех",
+   "греч",
+   "гриб",
+   "григ",
+   "грим",
+   "грин",
+   "грис",
+   "гриф",
+   "гроб",
+   "грог",
+   "гром",
+   "грос",
+   "грот",
+   "грох",
+   "грош",
+   "груз",
+   "грум",
+   "грэй",
+   "грэм",
+   "грюн",
+   "гуам",
+   "губа",
+   "губы",
+   "гулд",
+   "гули",
+   "гуль",
+   "гуля",
+   "гуно",
+   "гунс",
+   "гунт",
+   "гуны",
+   "гунь",
+   "гуня",
+   "гура",
+   "гурд",
+   "гуро",
+   "гурт",
+   "гуру",
+   "гуса",
+   "гуси",
+   "гусь",
+   "гута",
+   "гуща",
+   "гхор",
+   "гхош",
+   "гэлы",
+   "гэри",
+   "гюго",
+   "гюйо",
+   "гюйс",
+   "гяур",
+   "даба",
+   "даби",
+   "дабы",
+   "давн",
+   "даву",
+   "дада",
+   "даже",
+   "дайм",
+   "даки",
+   "дакс",
+   "дали",
+   "далу",
+   "даль",
+   "дама",
+   "даму",
+   "дана",
+   "данн",
+   "дану",
+   "дань",
+   "дари",
+   "дары",
+   "даса",
+   "дата",
+   "дауд",
+   "дача",
+   "двин",
+   "двое",
+   "двор",
+   "деак",
+   "дебс",
+   "дебт",
+   "дебу",
+   "дева",
+   "деви",
+   "дега",
+   "деги",
+   "деда",
+   "деды",
+   "дежа",
+   "дейл",
+   "дейч",
+   "дека",
+   "дела",
+   "дели",
+   "дело",
+   "дема",
+   "демы",
+   "дени",
+   "день",
+   "депо",
+   "дерг",
+   "дери",
+   "дерн",
+   "дети",
+   "дефо",
+   "деша",
+   "дёрг",
+   "дёрн",
+   "джаз",
+   "джая",
+   "джед",
+   "джек",
+   "джем",
+   "джен",
+   "джин",
+   "джип",
+   "джой",
+   "джок",
+   "джон",
+   "джут",
+   "дзен",
+   "дзот",
+   "дзэн",
+   "диаз",
+   "диас",
+   "диаш",
+   "диво",
+   "дидо",
+   "диез",
+   "диес",
+   "дике",
+   "дики",
+   "дико",
+   "дикс",
+   "дина",
+   "диод",
+   "диоп",
+   "диор",
+   "диск",
+   "дист",
+   "дисы",
+   "дити",
+   "дитя",
+   "диуф",
+   "дичь",
+   "диша",
+   "диюй",
+   "днем",
+   "днём",
+   "доби",
+   "добо",
+   "дове",
+   "дога",
+   "доги",
+   "доде",
+   "доза",
+   "дойе",
+   "дойл",
+   "дойт",
+   "дока",
+   "долг",
+   "доле",
+   "долу",
+   "доля",
+   "дома",
+   "домн",
+   "донг",
+   "дони",
+   "донн",
+   "доол",
+   "дора",
+   "доре",
+   "дорн",
+   "доув",
+   "доха",
+   "дочь",
+   "дояр",
+   "драп",
+   "драч",
+   "дрда",
+   "дрек",
+   "дреш",
+   "дрил",
+   "дрин",
+   "дрок",
+   "друг",
+   "дрыг",
+   "дрюк",
+   "дуат",
+   "дувр",
+   "дуга",
+   "дуда",
+   "дузе",
+   "дуит",
+   "дука",
+   "дуки",
+   "дуку",
+   "дуло",
+   "дуля",
+   "дума",
+   "думы",
+   "дуни",
+   "дура",
+   "дурь",
+   "дусе",
+   "дуст",
+   "дуся",
+   "дуть",
+   "духи",
+   "дуче",
+   "душа",
+   "дуэт",
+   "дыба",
+   "дымы",
+   "дыня",
+   "дыра",
+   "дьеп",
+   "дьер",
+   "дьюи",
+   "дьюк",
+   "дьяк",
+   "дэва",
+   "дэви",
+   "дэли",
+   "дэна",
+   "дэпп",
+   "дюге",
+   "дюги",
+   "дюже",
+   "дюза",
+   "дюйм",
+   "дюка",
+   "дюма",
+   "дюны",
+   "дюфе",
+   "дюфи",
+   "дядя",
+   "еаст",
+   "евле",
+   "евод",
+   "евро",
+   "егер",
+   "едва",
+   "едко",
+   "едок",
+   "ежов",
+   "ежом",
+   "езда",
+   "езус",
+   "ейск",
+   "елей",
+   "елец",
+   "елян",
+   "емва",
+   "еней",
+   "енот",
+   "еоус",
+   "ерик",
+   "ерин",
+   "ерма",
+   "ерне",
+   "ерши",
+   "есин",
+   "если",
+   "есть",
+   "ефод",
+   "ехор",
+   "ёжик",
+   "ёмко",
+   "жаба",
+   "жабо",
+   "жабы",
+   "жако",
+   "жало",
+   "жаль",
+   "жаля",
+   "жамм",
+   "жамс",
+   "жане",
+   "жанр",
+   "жара",
+   "жары",
+   "жать",
+   "жбан",
+   "жгут",
+   "жезл",
+   "желе",
+   "жена",
+   "жене",
+   "жест",
+   "жете",
+   "жечь",
+   "жжик",
+   "жиар",
+   "живо",
+   "заар",
+   "загс",
+   "зады",
+   "заем",
+   "заём",
+   "заир",
+   "зайц",
+   "закс",
+   "зале",
+   "залп",
+   "зама",
+   "заря",
+   "зато",
+   "заяц",
+   "звон",
+   "звук",
+   "звяк",
+   "згеж",
+   "зебу",
+   "зевс",
+   "зело",
+   "зему",
+   "зеро",
+   "зима",
+   "зина",
+   "зихи",
+   "зичи",
+   "злак",
+   "злец",
+   "злин",
+   "злое",
+   "злой",
+   "злот",
+   "змай",
+   "змеи",
+   "змей",
+   "змея",
+   "знак",
+   "зной",
+   "зогу",
+   "зоил",
+   "зола",
+   "золи",
+   "золя",
+   "зона",
+   "зонд",
+   "зонт",
+   "зуав",
+   "зубр",
+   "зубы",
+   "зуда",
+   "зуев",
+   "зуёк",
+   "зулу",
+   "зуль",
+   "зунд",
+   "зыбь",
+   "зырк",
+   "зюзя",
+   "зюйд",
+   "зюсс",
+   "зябь",
+   "зять",
+   "ибис",
+   "ибль",
+   "ивич",
+   "ивка",
+   "игбо",
+   "игил",
+   "игла",
+   "иглз",
+   "иглу",
+   "игра",
+   "иден",
+   "идея",
+   "иджо",
+   "идиш",
+   "идол",
+   "идти",
+   "иена",
+   "ижма",
+   "изаи",
+   "изба",
+   "изер",
+   "измы",
+   "изол",
+   "изюм",
+   "ийеш",
+   "икао",
+   "икар",
+   "икки",
+   "икра",
+   "икры",
+   "икта",
+   "илек",
+   "илий",
+   "илим",
+   "илия",
+   "илот",
+   "илыч",
+   "ильм",
+   "имаи",
+   "имам",
+   "иман",
+   "имер",
+   "имир",
+   "имоу",
+   "инам",
+   "инар",
+   "иная",
+   "инда",
+   "иней",
+   "инза",
+   "инин",
+   "иния",
+   "инки",
+   "инко",
+   "иное",
+   "иной",
+   "инок",
+   "инта",
+   "иона",
+   "иори",
+   "ипох",
+   "ирак",
+   "иран",
+   "ирга",
+   "ирис",
+   "ирод",
+   "истм",
+   "истр",
+   "итак",
+   "итал",
+   "итог",
+   "итон",
+   "иуда",
+   "ифли",
+   "ифни",
+   "ихор",
+   "ичан",
+   "ичня",
+   "ишак",
+   "ишим",
+   "ишум",
+   "июль",
+   "июнь",
+   "йезд",
+   "йена",
+   "йенс",
+   "йитс",
+   "йога",
+   "йоги",
+   "йони",
+   "йорк",
+   "йосу",
+   "йота",
+   "кабе",
+   "кабо",
+   "кабы",
+   "кава",
+   "кагу",
+   "кади",
+   "кадр",
+   "кадь",
+   "каес",
+   "каик",
+   "каин",
+   "каир",
+   "кайе",
+   "кайм",
+   "кайф",
+   "како",
+   "кала",
+   "кале",
+   "кали",
+   "калф",
+   "кама",
+   "ками",
+   "камо",
+   "камп",
+   "камы",
+   "кана",
+   "канн",
+   "кано",
+   "кант",
+   "каор",
+   "капо",
+   "капп",
+   "кара",
+   "каре",
+   "карм",
+   "каро",
+   "карп",
+   "карр",
+   "карс",
+   "карт",
+   "като",
+   "катс",
+   "каур",
+   "кафа",
+   "кафе",
+   "кафи",
+   "каха",
+   "кахи",
+   "каша",
+   "каши",
+   "каюа",
+   "каюк",
+   "каюр",
+   "каяк",
+   "квас",
+   "квит",
+   "кедр",
+   "кеды",
+   "кеик",
+   "кейн",
+   "кейп",
+   "кейф",
+   "кекс",
+   "кемп",
+   "кемц",
+   "кемь",
+   "кена",
+   "кено",
+   "кент",
+   "кенэ",
+   "кепи",
+   "кепс",
+   "кепы",
+   "керб",
+   "керд",
+   "керн",
+   "керр",
+   "керш",
+   "керы",
+   "кесь",
+   "кета",
+   "кето",
+   "кетч",
+   "кеты",
+   "кеть",
+   "кешк",
+   "киба",
+   "кибл",
+   "киви",
+   "киву",
+   "киев",
+   "кижи",
+   "кикс",
+   "кила",
+   "кило",
+   "киль",
+   "кина",
+   "кинг",
+   "кино",
+   "кион",
+   "киот",
+   "кипа",
+   "кипр",
+   "кипу",
+   "кирк",
+   "кирс",
+   "кирш",
+   "кирю",
+   "киса",
+   "кисс",
+   "кито",
+   "китс",
+   "китч",
+   "киты",
+   "кифа",
+   "киче",
+   "кишш",
+   "кияс",
+   "клад",
+   "клай",
+   "клан",
+   "клас",
+   "клее",
+   "клей",
+   "клен",
+   "клер",
+   "клеш",
+   "клещ",
+   "клёв",
+   "клён",
+   "клёш",
+   "клик",
+   "клин",
+   "клио",
+   "клип",
+   "клир",
+   "клич",
+   "клод",
+   "клок",
+   "клон",
+   "клоп",
+   "клуб",
+   "клуг",
+   "клуэ",
+   "клык",
+   "клюв",
+   "клюз",
+   "клюн",
+   "ключ",
+   "кляп",
+   "кндр",
+   "книс",
+   "книш",
+   "кноп",
+   "кнос",
+   "кнут",
+   "кобе",
+   "кобо",
+   "кова",
+   "ковш",
+   "ковы",
+   "кода",
+   "кодр",
+   "кожа",
+   "коза",
+   "кока",
+   "кокс",
+   "кола",
+   "колл",
+   "коло",
+   "колт",
+   "коль",
+   "кома",
+   "коми",
+   "комо",
+   "кони",
+   "конс",
+   "конт",
+   "конь",
+   "копа",
+   "копи",
+   "копо",
+   "кора",
+   "корб",
+   "корд",
+   "коре",
+   "корж",
+   "кори",
+   "корк",
+   "корм",
+   "корн",
+   "коро",
+   "корт",
+   "корф",
+   "корш",
+   "корь",
+   "коса",
+   "коси",
+   "косо",
+   "кота",
+   "коти",
+   "кото",
+   "коты",
+   "коуз",
+   "коул",
+   "коуш",
+   "кофе",
+   "кофр",
+   "кофу",
+   "коча",
+   "коши",
+   "кошт",
+   "коэн",
+   "краб",
+   "краг",
+   "край",
+   "крам",
+   "кран",
+   "крат",
+   "крах",
+   "креа",
+   "крез",
+   "крем",
+   "крен",
+   "креп",
+   "крец",
+   "крив",
+   "крие",
+   "криз",
+   "крик",
+   "крим",
+   "крис",
+   "крит",
+   "кров",
+   "крог",
+   "крой",
+   "крон",
+   "крор",
+   "крот",
+   "круг",
+   "круз",
+   "круп",
+   "крус",
+   "круя",
+   "крым",
+   "крэг",
+   "крюк",
+   "кряж",
+   "кряк",
+   "ксуф",
+   "ктиф",
+   "куба",
+   "кува",
+   "куга",
+   "куда",
+   "куду",
+   "куза",
+   "куин",
+   "кука",
+   "кули",
+   "куль",
+   "кума",
+   "куна",
+   "купа",
+   "купе",
+   "кура",
+   "куре",
+   "курс",
+   "курт",
+   "куру",
+   "куры",
+   "куса",
+   "куст",
+   "кутб",
+   "куть",
+   "куфа",
+   "куце",
+   "куча",
+   "куща",
+   "кыяк",
+   "кьюэ",
+   "кьят",
+   "кэли",
+   "кэма",
+   "кэри",
+   "кюре",
+   "кюри",
+   "кюсс",
+   "кюсю",
+   "лаар",
+   "лаба",
+   "лабе",
+   "лава",
+   "лаво",
+   "лавр",
+   "лаги",
+   "лада",
+   "лады",
+   "лажа",
+   "лазо",
+   "лазы",
+   "лаий",
+   "лаик",
+   "лайн",
+   "лайф",
+   "лаки",
+   "лакс",
+   "лало",
+   "лама",
+   "ламе",
+   "ламы",
+   "ланг",
+   "ланн",
+   "лану",
+   "лань",
+   "лаос",
+   "лапа",
+   "лара",
+   "лари",
+   "лары",
+   "ларь",
+   "ласа",
+   "ласи",
+   "ласк",
+   "ласт",
+   "лата",
+   "латы",
+   "лауб",
+   "лауэ",
+   "лафа",
+   "лахт",
+   "лача",
+   "лашо",
+   "лгун",
+   "леба",
+   "леви",
+   "лево",
+   "лега",
+   "леги",
+   "леда",
+   "леди",
+   "леду",
+   "лееб",
+   "леер",
+   "леза",
+   "лели",
+   "лена",
+   "ленд",
+   "ленц",
+   "ленч",
+   "лень",
+   "леон",
+   "лере",
+   "леру",
+   "леса",
+   "лесс",
+   "лета",
+   "лето",
+   "лечо",
+   "лечь",
+   "лещи",
+   "лёжа",
+   "лёли",
+   "лёсс",
+   "лжец",
+   "либо",
+   "ливр",
+   "ливы",
+   "лига",
+   "лиго",
+   "лида",
+   "лидс",
+   "лийв",
+   "лики",
+   "лили",
+   "лима",
+   "лимб",
+   "линд",
+   "лине",
+   "лино",
+   "линт",
+   "линц",
+   "линч",
+   "линь",
+   "лион",
+   "липа",
+   "лира",
+   "лиса",
+   "лисс",
+   "лист",
+   "литр",
+   "литт",
+   "лить",
+   "лифт",
+   "лихо",
+   "лицо",
+   "лишь",
+   "лиэй",
+   "ллеу",
+   "ллир",
+   "ложа",
+   "ложе",
+   "ложь",
+   "лоза",
+   "лози",
+   "лоик",
+   "лока",
+   "локи",
+   "локк",
+   "локо",
+   "ломе",
+   "лонг",
+   "лоне",
+   "лоно",
+   "лоос",
+   "лорд",
+   "лори",
+   "лоро",
+   "лоск",
+   "лось",
+   "лота",
+   "лоти",
+   "лото",
+   "лоуд",
+   "лоуч",
+   "лоян",
+   "луба",
+   "лубе",
+   "луби",
+   "лувр",
+   "луга",
+   "луго",
+   "луда",
+   "лужа",
+   "луза",
+   "луис",
+   "лука",
+   "лукс",
+   "луна",
+   "лунд",
+   "луни",
+   "лунц",
+   "лунь",
+   "лупа",
+   "лупу",
+   "луры",
+   "лусс",
+   "лутс",
+   "луцк",
+   "лучи",
+   "лыжи",
+   "лыко",
+   "льды",
+   "льеж",
+   "льзя",
+   "лэмб",
+   "лэнг",
+   "люба",
+   "любо",
+   "любя",
+   "люди",
+   "люкс",
+   "люли",
+   "люто",
+   "люфа",
+   "люфт",
+   "люэс",
+   "ляда",
+   "лязг",
+   "ляни",
+   "лярд",
+   "лясс",
+   "лясы",
+   "маас",
+   "маат",
+   "мавр",
+   "маги",
+   "мазь",
+   "маин",
+   "маис",
+   "майн",
+   "майр",
+   "майя",
+   "маке",
+   "маки",
+   "макк",
+   "мако",
+   "мала",
+   "мале",
+   "мали",
+   "мало",
+   "маль",
+   "мама",
+   "маме",
+   "мана",
+   "мане",
+   "мани",
+   "манн",
+   "ману",
+   "маны",
+   "мара",
+   "маре",
+   "мари",
+   "марк",
+   "марр",
+   "марс",
+   "март",
+   "марч",
+   "марш",
+   "мары",
+   "марь",
+   "маря",
+   "мате",
+   "матч",
+   "мать",
+   "матэ",
+   "маун",
+   "маха",
+   "махе",
+   "махи",
+   "маца",
+   "маюд",
+   "маяк",
+   "мгла",
+   "мгсс",
+   "медб",
+   "медь",
+   "межа",
+   "меир",
+   "мейо",
+   "мекк",
+   "мель",
+   "мена",
+   "менс",
+   "мент",
+   "мень",
+   "меню",
+   "мера",
+   "мерв",
+   "мери",
+   "мерк",
+   "меро",
+   "мерт",
+   "меру",
+   "меры",
+   "меря",
+   "меса",
+   "мета",
+   "метр",
+   "мзда",
+   "миан",
+   "миах",
+   "миди",
+   "мийо",
+   "милн",
+   "мило",
+   "милы",
+   "миль",
+   "миля",
+   "мимо",
+   "мина",
+   "мини",
+   "минх",
+   "минц",
+   "минь",
+   "мира",
+   "мири",
+   "миро",
+   "мирт",
+   "мисс",
+   "миус",
+   "мишо",
+   "мкхп",
+   "моав",
+   "мода",
+   "мозг",
+   "моле",
+   "моль",
+   "мома",
+   "момо",
+   "монд",
+   "моне",
+   "монж",
+   "моно",
+   "монс",
+   "моны",
+   "моор",
+   "мопс",
+   "мора",
+   "морг",
+   "море",
+   "морж",
+   "мори",
+   "моро",
+   "морс",
+   "морф",
+   "моси",
+   "мост",
+   "мотт",
+   "мофф",
+   "моха",
+   "мохэ",
+   "моча",
+   "мочь",
+   "моши",
+   "мощи",
+   "мощь",
+   "моэм",
+   "мрак",
+   "мрия",
+   "мснс",
+   "мсоп",
+   "мста",
+   "муар",
+   "мужи",
+   "муза",
+   "музы",
+   "муин",
+   "муир",
+   "мука",
+   "муко",
+   "муна",
+   "муни",
+   "мунк",
+   "мура",
+   "мусс",
+   "муст",
+   "мута",
+   "мути",
+   "муть",
+   "муха",
+   "муху",
+   "мушг",
+   "мхат",
+   "мыза",
+   "мыла",
+   "мыло",
+   "мыть",
+   "мыши",
+   "мышь",
+   "мьей",
+   "мэйо",
+   "мэтр",
+   "мюнц",
+   "мюнш",
+   "мюон",
+   "мясо",
+   "мята",
+   "мять",
+   "наби",
+   "набу",
+   "навь",
+   "нага",
+   "наги",
+   "надо",
+   "надф",
+   "надь",
+   "наём",
+   "наиб",
+   "найт",
+   "нала",
+   "нами",
+   "нани",
+   "нанн",
+   "нант",
+   "наос",
+   "нара",
+   "нард",
+   "нары",
+   "наса",
+   "наст",
+   "нате",
+   "нато",
+   "натр",
+   "наха",
+   "наше",
+   "наши",
+   "нгве",
+   "небо",
+   "нева",
+   "нево",
+   "нега",
+   "неги",
+   "негр",
+   "нейл",
+   "нейт",
+   "некк",
+   "нема",
+   "немо",
+   "неон",
+   "непа",
+   "нерв",
+   "нери",
+   "неро",
+   "неру",
+   "нето",
+   "неуд",
+   "неуч",
+   "нефф",
+   "неэр",
+   "нёбо",
+   "ниас",
+   "нива",
+   "ниже",
+   "низы",
+   "низь",
+   "ника",
+   "нимб",
+   "нина",
+   "ниса",
+   "нисе",
+   "нитш",
+   "нить",
+   "ниуэ",
+   "ниша",
+   "нови",
+   "ново",
+   "новь",
+   "нога",
+   "нойч",
+   "нокс",
+   "ноли",
+   "ноль",
+   "нома",
+   "нона",
+   "ноно",
+   "нора",
+   "норд",
+   "норт",
+   "нота",
+   "ноты",
+   "ночь",
+   "ноша",
+   "нрав",
+   "нуво",
+   "нуга",
+   "нуда",
+   "нудо",
+   "нудь",
+   "нуль",
+   "нупе",
+   "нура",
+   "нуте",
+   "нуха",
+   "нуэр",
+   "ныне",
+   "ныса",
+   "ныть",
+   "ньяя",
+   "нюкс",
+   "нюня",
+   "няга",
+   "няня",
+   "няша",
+   "оаху",
+   "обед",
+   "обер",
+   "обет",
+   "обжа",
+   "обже",
+   "обод",
+   "обоз",
+   "обои",
+   "обой",
+   "обок",
+   "обол",
+   "обры",
+   "обух",
+   "общо",
+   "овал",
+   "овен",
+   "овес",
+   "овёс",
+   "овин",
+   "овод",
+   "овсы",
+   "овца",
+   "огиз",
+   "огма",
+   "огон",
+   "огпу",
+   "огре",
+   "огуз",
+   "оден",
+   "одер",
+   "одёр",
+   "один",
+   "одна",
+   "одни",
+   "одно",
+   "одра",
+   "ожог",
+   "озал",
+   "озон",
+   "оита",
+   "ойпе",
+   "окар",
+   "окас",
+   "окат",
+   "окей",
+   "окен",
+   "окно",
+   "оков",
+   "окоп",
+   "окот",
+   "окри",
+   "олар",
+   "олби",
+   "олег",
+   "олен",
+   "олех",
+   "олух",
+   "олык",
+   "оман",
+   "омар",
+   "омач",
+   "омег",
+   "омет",
+   "омёт",
+   "омия",
+   "омск",
+   "омут",
+   "онар",
+   "онат",
+   "онёр",
+   "онис",
+   "онон",
+   "оноэ",
+   "онса",
+   "оный",
+   "оока",
+   "оорт",
+   "опак",
+   "опал",
+   "опек",
+   "опий",
+   "опиц",
+   "опля",
+   "опой",
+   "опус",
+   "опыт",
+   "оран",
+   "орда",
+   "орел",
+   "орем",
+   "орех",
+   "орёл",
+   "орик",
+   "ория",
+   "орлы",
+   "ороп",
+   "орск",
+   "орта",
+   "орун",
+   "орша",
+   "осек",
+   "осел",
+   "осёл",
+   "осил",
+   "осио",
+   "осис",
+   "оски",
+   "осло",
+   "ослы",
+   "осос",
+   "осот",
+   "оспа",
+   "осса",
+   "ость",
+   "отек",
+   "отел",
+   "отец",
+   "отёк",
+   "отёл",
+   "отит",
+   "отто",
+   "отцы",
+   "отян",
+   "оулу",
+   "оутс",
+   "оуэн",
+   "офис",
+   "офит",
+   "оффа",
+   "охра",
+   "охти",
+   "оцеп",
+   "оцет",
+   "оцуп",
+   "очаг",
+   "очер",
+   "очес",
+   "очёс",
+   "очки",
+   "очко",
+   "очоа",
+   "ошва",
+   "ошки",
+   "оюун",
+   "ояма",
+   "пава",
+   "падь",
+   "паек",
+   "паёк",
+   "пайк",
+   "пайп",
+   "пайс",
+   "пакс",
+   "пакт",
+   "пали",
+   "паль",
+   "паля",
+   "пани",
+   "пано",
+   "пант",
+   "панч",
+   "папа",
+   "папп",
+   "пара",
+   "паре",
+   "пари",
+   "парк",
+   "парс",
+   "парх",
+   "пары",
+   "паря",
+   "паск",
+   "пасо",
+   "пасу",
+   "пате",
+   "паук",
+   "паул",
+   "паут",
+   "пафф",
+   "пахт",
+   "паче",
+   "паша",
+   "паюс",
+   "паяц",
+   "пеан",
+   "певг",
+   "пеги",
+   "пегу",
+   "педи",
+   "пежо",
+   "пейл",
+   "пейн",
+   "пейт",
+   "пека",
+   "пеки",
+   "пеко",
+   "пеле",
+   "пена",
+   "пенк",
+   "пенн",
+   "пено",
+   "пенс",
+   "пены",
+   "пень",
+   "пеня",
+   "пеон",
+   "пепе",
+   "пере",
+   "пери",
+   "перл",
+   "перо",
+   "перс",
+   "перт",
+   "перу",
+   "перш",
+   "песо",
+   "пест",
+   "пети",
+   "петр",
+   "петь",
+   "петя",
+   "печь",
+   "пешт",
+   "пиай",
+   "пиаф",
+   "пиво",
+   "пигу",
+   "пиза",
+   "пийп",
+   "пика",
+   "пике",
+   "пики",
+   "пила",
+   "пиль",
+   "пимы",
+   "пинг",
+   "пинд",
+   "пино",
+   "пион",
+   "пипа",
+   "пипс",
+   "пипы",
+   "пири",
+   "пирр",
+   "пирс",
+   "писк",
+   "пист",
+   "пита",
+   "пито",
+   "питт",
+   "пить",
+   "пифо",
+   "пища",
+   "плаз",
+   "плак",
+   "план",
+   "плат",
+   "плац",
+   "плач",
+   "плащ",
+   "плед",
+   "плен",
+   "плес",
+   "плёс",
+   "плие",
+   "плис",
+   "плов",
+   "плод",
+   "плот",
+   "плох",
+   "плуг",
+   "плут",
+   "плюр",
+   "плюс",
+   "плюх",
+   "плюш",
+   "плющ",
+   "пляж",
+   "пляс",
+   "пнин",
+   "поди",
+   "поды",
+   "поза",
+   "пози",
+   "пока",
+   "пола",
+   "поле",
+   "полк",
+   "поло",
+   "поля",
+   "понд",
+   "понж",
+   "пони",
+   "пон