Spider545
03.10.2009, 16:14
Все кто любит поломать голову, приветствую вас)))))
Нужно разработать программу, взламывающую шифр, основываясь на статистике естественного языка.
Дан шифротекст и размер блока. Требуется получить открытый текст и ключ — последовательность перестановки символов (получить автоматически).
Текст должен расшифровываться по методу двойной перестановки.
Пример:
1 2 3 4
1 A З Ю Ж
2 E С Ш
3 Г T О О
4 И П E P
Рассматривая маловероятные сочетания букв, легко найти истинную последовательность столбцов. Так, сочетание ГТ в 3 строке шифровки указывает на то, что после 1 столбца вряд ли следует 2 столбец. Рассчитаем статистически, какой столбец скорее всего следует за 1. Для этого воспользуемся таблицей логарифмов вероятностей биграмм русского текста, приведенной в приложении. Вероятность следования одного столбца за другим равна произведению вероятностей биграмм в строках этих столбцов. Поскольку в таблице даны логарифмы биграмм, то их достаточно суммировать, а потом выбрать сочетание столбцов с максимальной вероятностью. Для вероятностей следования за первым столбцом 2, 3 и 4 имеем выражения:
р (1-2) =р(A3) р(Е ) р(ГТ) р(ИП)=7+9+0+5=21
р (1-3) =р(АЮ) р(ЕС) р(ГО) р(ИЕ)=6+8+8+8=30
р (1-4 )=р(АЖ) р(ЕШ) р(ГО) р(ЯР)=7+5+8+7=27
В нашем случае наиболее вероятно, что после столбца 1 следует столбец 3. Для такой небольшой таблицы шифрования, которую имеем, можно перебрать все варианты перестановок - их всего лишь 24. В случае большого числа столбцов целесообразно оценить вероятности пар сочетаний разных столбцов и решить оптимизационную задачу, которая укажет перестановку столбцов, дающую фрагменты естественного текста с большей вероятностью. В нашем случае наилучший результат достигается при расстановке столбцов (2413), что примерно вдвое по вероятностной оценке достовернее ближайшей к ней по вероятности расстановки (4132). После того, как столбцы шифровки расставлены, не составит труда правильно расставить и ее строки по смыслу фрагментов текста:
2 4 1 3
1 З Ж A Ю
2 Ш E С
3 T О Г О
4 П P И E
Текст в ней уже читается и, расставив строки в порядке (4123), получим расшифровку ПРИЕЗЖАЮ ШЕСТОГО.
Статистика распределения частот символов
[(8028,' '), (10,'!'), (6,'%'), (70,'('), (70,')'), (836,','), (116,'-'), (432,'.'), (10,'0'), (4,'1'), (2,'2'), (2,'4'), (2,'6'), (2,'7'), (8,'9'), (28,':'), (10,';'), (4,'?'), (18,'А'), (6,'Б'), (76,'В'), (2,'Г'), (26,'Д'), (14,'Е'), (22,'З'), (54,'И'), (40,'К'), (8,'Л'), (18,'М'), (50,'Н'), (60,'О'), (56,'П'), (12,'Р'), (58,'С'), (20,'Т'), (12,'У'), (4,'Ф'), (10,'Х'), (2,'Ц'), (2,'Ч'), (8,'Ш'), (18,'Э'), (2,'Ю'), (4,'Я'), (3650,'а'), (816,'б'), (2060,'в'), (608,'г'), (1186,'д'), (4700,'е'), (424,'ж'), (984,'з'), (4188,'и'), (514,'й'), (1664,'к'), (1954,'л'), (1828,'м'), (3640,'н'), (5772,'о'), (1432,'п'), (2222,'р'), (2868,'с'), (3706,'т'), (1258,'у'), (244,'ф'), (482,'х'), (278,'ц'), (734,'ч'), (196,'ш'), (366,'щ'), (16,'ъ'), (1100,'ы'), (938,'ь'), (152,'э'), (450,'ю'), (914,'я')]
Статистика распределения частот пар символов
[(2," "), (70," ("), (74," -"), (4," 1"), (2," 2"), (2," 4"), (2," 6"), (4," 9"), (14," А"), (6," Б"), (74," В"), (2," Г"), (26," Д"), (14," Е"), (22," З"), (42," И"), (40," К"), (8," Л"), (14," М"), (48," Н"), (54," О"), (56," П"), (12," Р"), (36," С"), (18," Т"), (12," У"), (4," Ф"), (10," Х"), (2," Ц"), (2," Ч"), (6," Ш"), (16," Э"), (2," Ю"), (4," Я"), (162," а"), (294," б"), (652," в"), (72," г"), (284," д"), (88," е"), (36," ж"), (204," з"), (652," и"), (472," к"), (94," л"), (228," м"), (548," н"), (556," о"), (816," п"), (218," р"), (828," с"), (372," т"), (222," у"), (20," ф"), (76," х"), (44," ц"), (220," ч"), (16," ш"), (142," э"), (6," ю"), (26," я"), (6,"! "), (4,"!)"), (6,"% "), (2,"(В"), (4,"(в"), (2,"(г"), (2,"(е"), (12,"(и"), (4,"(к"), (2,"(л"), (4,"(м"), (8,"(н"), (10,"(о"), (2,"(п"), (2,"(р"), (4,"(с"), (2,"(т"), (4,"(у"), (6,"(х"), (28,") "), (18,"),"), (22,")."), (2,");"), (834,", "), (2,",-"), (76,"- "), (4,"-в"), (6,"-з"), (2,"-к"), (4,"-л"), (2,"-м"), (6,"-н"), (6,"-п"), (8,"-т"), (2,"-ч"), (415,". "), (6,".)"), (8,".."), (2,".п"), (4,"0 "), (6,"0%"), (2,"10"), (2,"19"), (2,"20"), (2,"4)"), (2,"60"), (2,"7 "), (4,"90"), (2,"97"), (2,"99"), (28,": "), (10,"; "), (4,"? "), (2,"А "), (2,"А."), (2,"АО"), (2,"АТ"), (2,"АЭ"), (2,"Ар"), (6,"Ат"), (2,"Бо"), (4,"Бы"), (34,"В "), (20,"ВС"), (2,"Ва"), (2,"Ве"), (2,"Вз"), (4,"Во"), (8,"Вс"), (4,"Вы"), (2,"Гл"), (12,"Да"), (4,"Де"), (4,"Дл"), (6,"Др"), (4,"Ег"), (10,"Ес"), (12,"За"), (6,"Зв"), (2,"Зи"), (2,"Зн"), (8,"И "), (6,"И,"), (2,"И:"), (2,"Иг"), (4,"Из"), (4,"Им"), (4,"Ин"), (10,"Ис"), (8,"Ит"), (6,"Их"), (8,"К "), (10,"Ка"), (2,"Ке"), (16,"Ко"), (4,"Кр"), (8,"Ле"), (4,"МИ"), (2,"Ме"), (6,"Ми"), (2,"Мн"), (2,"Мо"), (2,"Мы"), (2,"Н "), (2,"НА"), (16,"На"), (12,"Не"), (2,"Ни"), (14,"Но"), (2,"Ну"), (2,"О "), (2,"О)"), (2,"ОН"), (6,"Об"), (10,"Од"), (8,"Он"), (22,"Ос"), (2,"От"), (6,"Оч"), (2,"ПО"), (30,"По"), (24,"Пр"), (2,"Ра"), (8,"Ре"), (2,"Ро"), (20,"С "), (2,"С)"), (8,"С,"), (8,"СИ"), (4,"СМ"), (2,"СШ"), (4,"Сл"), (8,"Со"), (2,"Су"), (2,"ТО"), (6,"Та"), (10,"Те"), (2,"Тр"), (2,"У "), (6,"Уг"), (2,"Уд"), (2,"Уя"), (2,"Фа"), (2,"Фр"), (2,"Ха"), (8,"Хо"), (2,"Це"), (2,"Чт"), (2,"ША"), (2,"Ши"), (4,"Шу"), (2,"ЭС"), (2,"Эк"), (14,"Эт"), (2,"Юг"), (2,"Я "), (2,"Яр"), (466,"а "), (2,"а!"), (8,"а)"), (54,"а,"), (4,"а-"), (36,"а."), (6,"а:"), (2,"а;"), (54,"аб"), (124,"ав"), (14,"аг"), (72,"ад"), (114,"ае"), (58,"аж"), (154,"аз"), (24,"аи"), (26,"ай"), (422,"ак"), (270,"ал"), (174,"ам"), (350,"ан"), (32,"ап"), (86,"ар"), (204,"ас"), (372,"ат"), (4,"ау"), (2,"аф"), (44,"ах"), (140,"ац"), (74,"ач"), (28,"аш"), (86,"ащ"), (48,"аю"), (96,"ая"), (18,"б "), (2,"б."), (38,"ба"), (176,"бе"), (2,"бж"), (8,"би"), (2,"бк"), (34,"бл"), (2,"бм"), (28,"бн"), (140,"бо"), (44,"бр"), (32,"бс"), (50,"бу"), (24,"бх"), (30,"бщ"), (12,"бъ"), (158,"бы"), (16,"бя"), (312,"в "), (2,"в!"), (2,"в)"), (42,"в,"), (2,"в-"), (8,"в."), (4,"в;"), (350,"ва"), (4,"вв"), (10,"вд"), (256,"ве"), (64,"вз"), (158,"ви"), (12,"вк"), (96,"вл"), (4,"вм"), (86,"вн"), (298,"во"), (2,"вп"), (22,"вр"), (88,"вс"), (12,"вт"), (34,"ву"), (2,"вх"), (18,"вш"), (154,"вы"), (18,"вя"), (2,"г-"), (52,"га"), (30,"гд"), (12,"ге"), (58,"ги"), (6,"гк"), (22,"гл"), (2,"гм"), (6,"гн"), (308,"го"), (86,"гр"), (24,"гу"), (22,"д "), (4,"д,"), (2,"д."), (160,"да"), (2,"дб"), (22,"дв"), (8,"дд"), (248,"де"), (106,"ди"), (4,"дк"), (74,"дл"), (16,"дм"), (128,"дн"), (178,"до"), (8,"дп"), (38,"др"), (32,"дс"), (4,"дт"), (76,"ду"), (2,"дх"), (2,"дч"), (2,"дъ"), (16,"ды"), (16,"дь"), (16,"дя"), (882,"е "), (4,"е!"), (8,"е)"), (66,"е,"), (2,"е-"), (22,"е."), (26,"еа"), (44,"еб"), (66,"ев"), (118,"ег"), (228,"ед"), (82,"ее"), (38,"еж"), (134,"ез"), (4,"еи"), (138,"ей"), (80,"ек"), (356,"ел"), (310,"ем"), (686,"ен"), (36,"ео"), (22,"еп"), (398,"ер"), (344,"ес"), (402,"ет"), (10,"еу"), (28,"еф"), (36,"ех"), (20,"ец"), (62,"еч"), (24,"еш"), (14,"ещ"), (6,"ею"), (4,"ея"), (4,"ж "), (42,"жа"), (8,"жб"), (36,"жд"), (156,"же"), (44,"жи"), (12,"жк"), (110,"жн"), (2,"жо"), (10,"жу"), (36,"з "), (4,"з,"), (4,"з-"), (2,"з."), (252,"за"), (4,"зб"), (102,"зв"), (8,"зг"), (26,"зд"), (4,"зе"), (10,"зз"), (18,"зи"), (88,"зл"), (44,"зм"), (90,"зн"), (154,"зо"), (26,"зр"), (60,"зу"), (2,"зъ"), (38,"зы"), (2,"зь"), (2,"зю"), (8,"зя"), (866,"и "), (14,"и)"), (112,"и,"), (104,"и."), (8,"и:"), (38,"иа"), (36,"иб"), (82,"ив"), (22,"иг"), (54,"ид"), (264,"ие"), (2,"иж"), (136,"из"), (160,"ии"), (62,"ий"), (212,"ик"), (120,"ил"), (268,"им"), (226,"ин"), (68,"ио"), (14,"ип"), (82,"ир"), (320,"ис"), (366,"ит"), (42,"иф"), (122,"их"), (20,"иц"), (106,"ич"), (8,"иш"), (14,"ищ"), (44,"ию"), (196,"ия"), (380,"й "), (4,"й)"), (14,"й,"), (18,"й."), (2,"й:"), (4,"йд"), (2,"йл"), (14,"йн"), (44,"йс"), (24,"йт"), (2,"йч"), (6,"йш"), (184,"к "), (22,"к,"), (2,"к."), (2,"к:"), (248,"ка"), (14,"кв"), (108,"ке"), (16,"кж"), (170,"ки"), (2,"кк"), (40,"кл"), (20,"кн"), (530,"ко"), (112,"кр"), (10,"кс"), (88,"кт"), (86,"ку"), (10,"кц"), (58,"л "), (4,"л)"), (6,"л,"), (4,"л."), (136,"ла"), (2,"лг"), (326,"ле"), (32,"лж"), (408,"ли"), (6,"лк"), (4,"лл"), (14,"лн"), (248,"ло"), (122,"лу"), (20,"лы"), (360,"ль"), (54,"лю"), (150,"ля"), (310,"м "), (4,"м)"), (68,"м,"), (28,"м."), (2,"м:"), (2,"м?"), (186,"ма"), (268,"ме"), (192,"ми"), (16,"мл"), (36,"мм"), (70,"мн"), (234,"мо"), (126,"мп"), (2,"мс"), (102,"му"), (22,"мщ"), (146,"мы"), (14,"мя"), (56,"н "), (6,"н,"), (6,"н."), (484,"на"), (14,"нд"), (370,"не"), (6,"нж"), (720,"ни"), (46,"нк"), (330,"нн"), (856,"но"), (2,"нр"), (24,"нс"), (76,"нт"), (64,"ну"), (96,"нф"), (26,"нц"), (366,"ны"), (30,"нь"), (4,"ню"), (58,"ня"), (820,"о "), (2,"о!"), (130,"о,"), (24,"о-"), (22,"о."), (2,"о:"), (2,"о;"), (4,"оа"), (330,"об"), (556,"ов"), (254,"ог"), (220,"од"), (140,"ое"), (134,"ож"), (128,"оз"), (38,"ои"), (208,"ой"), (70,"ок"), (382,"ол"), (440,"ом"), (280,"он"), (26,"оо"), (174,"оп"), (316,"ор"), (502,"ос"), (366,"от"), (10,"оу"), (32,"оф"), (26,"ох"), (16,"оц"), (56,"оч"), (20,"ош"), (16,"ощ"), (8,"оэ"), (2,"ою"), (16,"оя"), (10,"п "), (6,"п."), (176,"па"), (110,"пе"), (16,"пи"), (2,"пк"), (16,"пл"), (6,"пн"), (514,"по"), (2,"пп"), (452,"пр"), (6,"пс"), (4,"пт"), (20,"пу"), (20,"пы"), (72,"пь"), (32,"р "), (2,"р)"), (18,"р,"), (2,"р?"), (552,"ра"), (6,"рб"), (22,"рв"), (34,"рг"), (4,"рд"), (310,"ре"), (16,"рж"), (190,"ри"), (12,"рк"), (2,"рл"), (102,"рм"), (86,"рн"), (480,"ро"), (4,"рп"), (2,"рр"), (28,"рс"), (6,"рт"), (166,"ру"), (2,"рх"), (2,"рч"), (96,"ры"), (16,"рь"), (30,"ря"), (96,"с "), (2,"с."), (54,"са"), (62,"св"), (10,"сд"), (178,"се"), (202,"си"), (148,"ск"), (218,"сл"), (16,"см"), (138,"сн"), (200,"со"), (170,"сп"), (20,"ср"), (68,"сс"), (944,"ст"), (80,"су"), (4,"сф"), (6,"сх"), (2,"сц"), (16,"сч"), (4,"сш"), (12,"сы"), (26,"сь"), (192,"ся"), (320,"т "), (42,"т,"), (22,"т."), (438,"та"), (236,"тв"), (20,"тд"), (602,"те"), (376,"ти"), (40,"тк"), (12,"тл"), (2,"тм"), (96,"тн"), (616,"то"), (194,"тр"), (142,"тс"), (2,"тт"), (60,"ту"), (6,"тч"), (64,"ты"), (400,"ть"), (16,"тя"), (162,"у "), (24,"у,"), (2,"у-"), (10,"у."), (6,"уа"), (12,"уб"), (14,"ув"), (66,"уг"), (124,"уд"), (54,"уе"), (80,"уж"), (10,"уз"), (2,"уи"), (10,"уй"), (40,"ук"), (16,"ул"), (42,"ум"), (10,"ун"), (46,"уп"), (50,"ур"), (50,"ус"), (72,"ут"), (2,"ух"), (96,"уч"), (14,"уш"), (60,"ущ"), (2,"уэ"), (142,"ую"), (40,"уя"), (8,"ф "), (2,"ф,"), (10,"фа"), (42,"фе"), (44,"фи"), (2,"фл"), (116,"фо"), (8,"фр"), (2,"фу"), (10,"фф"), (262,"х "), (2,"х)"), (26,"х,"), (8,"х."), (42,"ха"), (2,"хв"), (2,"хе"), (18,"хн"), (100,"хо"), (14,"хр"), (4,"хс"), (2,"ху"), (2,"ц "), (4,"ц,"), (8,"ца"), (2,"цд"), (60,"це"), (198,"ци"), (2,"цо"), (2,"цу"), (4,"ч "), (86,"ча"), (240,"че"), (140,"чи"), (8,"чк"), (82,"чн"), (2,"чр"), (142,"чт"), (18,"чу"), (6,"чш"), (6,"чь"), (6,"ш "), (18,"ша"), (70,"ше"), (44,"ши"), (2,"шк"), (12,"шл"), (14,"шн"), (14,"шо"), (12,"шу"), (4,"шь"), (18,"ща"), (142,"ще"), (188,"щи"), (2,"щн"), (10,"щу"), (6,"щь"), (8,"ъе"), (8,"ъя"), (262,"ы "), (44,"ы,"), (28,"ы."), (2,"ы:"), (46,"ыв"), (6,"ыд"), (166,"ые"), (8,"ыз"), (70,"ый"), (2,"ык"), (48,"ыл"), (102,"ым"), (2,"ын"), (6,"ып"), (2,"ыр"), (18,"ыс"), (78,"ыт"), (122,"ых"), (60,"ыч"), (22,"ыш"), (6,"ыя"), (366,"ь "), (36,"ь,"), (26,"ь."), (2,"ь:"), (2,"ьб"), (2,"ьг"), (10,"ье"), (82,"ьз"), (4,"ьи"), (46,"ьк"), (4,"ьм"), (160,"ьн"), (52,"ьс"), (12,"ьт"), (26,"ьш"), (106,"ью"), (2,"ья"), (4,"эк"), (8,"эл"), (2,"эн"), (2,"эр"), (124,"эт"), (10,"эф"), (2,"эх"), (106,"ю "), (20,"ю,"), (16,"ю."), (18,"юб"), (18,"юд"), (8,"юм"), (4,"юс"), (138,"ют"), (20,"юч"), (102,"ющ"), (506,"я "), (6,"я)"), (60,"я,"), (26,"я."), (42,"яв"), (4,"яд"), (42,"яе"), (4,"яж"), (42,"яз"), (6,"як"), (6,"ял"), (18,"ям"), (8,"ян"), (2,"яр"), (12,"яс"), (60,"ят"), (4,"ях"), (4,"яч"), (4,"яш"), (22,"ящ"), (36,"яю")]
Нужно разработать программу, взламывающую шифр, основываясь на статистике естественного языка.
Дан шифротекст и размер блока. Требуется получить открытый текст и ключ — последовательность перестановки символов (получить автоматически).
Текст должен расшифровываться по методу двойной перестановки.
Пример:
1 2 3 4
1 A З Ю Ж
2 E С Ш
3 Г T О О
4 И П E P
Рассматривая маловероятные сочетания букв, легко найти истинную последовательность столбцов. Так, сочетание ГТ в 3 строке шифровки указывает на то, что после 1 столбца вряд ли следует 2 столбец. Рассчитаем статистически, какой столбец скорее всего следует за 1. Для этого воспользуемся таблицей логарифмов вероятностей биграмм русского текста, приведенной в приложении. Вероятность следования одного столбца за другим равна произведению вероятностей биграмм в строках этих столбцов. Поскольку в таблице даны логарифмы биграмм, то их достаточно суммировать, а потом выбрать сочетание столбцов с максимальной вероятностью. Для вероятностей следования за первым столбцом 2, 3 и 4 имеем выражения:
р (1-2) =р(A3) р(Е ) р(ГТ) р(ИП)=7+9+0+5=21
р (1-3) =р(АЮ) р(ЕС) р(ГО) р(ИЕ)=6+8+8+8=30
р (1-4 )=р(АЖ) р(ЕШ) р(ГО) р(ЯР)=7+5+8+7=27
В нашем случае наиболее вероятно, что после столбца 1 следует столбец 3. Для такой небольшой таблицы шифрования, которую имеем, можно перебрать все варианты перестановок - их всего лишь 24. В случае большого числа столбцов целесообразно оценить вероятности пар сочетаний разных столбцов и решить оптимизационную задачу, которая укажет перестановку столбцов, дающую фрагменты естественного текста с большей вероятностью. В нашем случае наилучший результат достигается при расстановке столбцов (2413), что примерно вдвое по вероятностной оценке достовернее ближайшей к ней по вероятности расстановки (4132). После того, как столбцы шифровки расставлены, не составит труда правильно расставить и ее строки по смыслу фрагментов текста:
2 4 1 3
1 З Ж A Ю
2 Ш E С
3 T О Г О
4 П P И E
Текст в ней уже читается и, расставив строки в порядке (4123), получим расшифровку ПРИЕЗЖАЮ ШЕСТОГО.
Статистика распределения частот символов
[(8028,' '), (10,'!'), (6,'%'), (70,'('), (70,')'), (836,','), (116,'-'), (432,'.'), (10,'0'), (4,'1'), (2,'2'), (2,'4'), (2,'6'), (2,'7'), (8,'9'), (28,':'), (10,';'), (4,'?'), (18,'А'), (6,'Б'), (76,'В'), (2,'Г'), (26,'Д'), (14,'Е'), (22,'З'), (54,'И'), (40,'К'), (8,'Л'), (18,'М'), (50,'Н'), (60,'О'), (56,'П'), (12,'Р'), (58,'С'), (20,'Т'), (12,'У'), (4,'Ф'), (10,'Х'), (2,'Ц'), (2,'Ч'), (8,'Ш'), (18,'Э'), (2,'Ю'), (4,'Я'), (3650,'а'), (816,'б'), (2060,'в'), (608,'г'), (1186,'д'), (4700,'е'), (424,'ж'), (984,'з'), (4188,'и'), (514,'й'), (1664,'к'), (1954,'л'), (1828,'м'), (3640,'н'), (5772,'о'), (1432,'п'), (2222,'р'), (2868,'с'), (3706,'т'), (1258,'у'), (244,'ф'), (482,'х'), (278,'ц'), (734,'ч'), (196,'ш'), (366,'щ'), (16,'ъ'), (1100,'ы'), (938,'ь'), (152,'э'), (450,'ю'), (914,'я')]
Статистика распределения частот пар символов
[(2," "), (70," ("), (74," -"), (4," 1"), (2," 2"), (2," 4"), (2," 6"), (4," 9"), (14," А"), (6," Б"), (74," В"), (2," Г"), (26," Д"), (14," Е"), (22," З"), (42," И"), (40," К"), (8," Л"), (14," М"), (48," Н"), (54," О"), (56," П"), (12," Р"), (36," С"), (18," Т"), (12," У"), (4," Ф"), (10," Х"), (2," Ц"), (2," Ч"), (6," Ш"), (16," Э"), (2," Ю"), (4," Я"), (162," а"), (294," б"), (652," в"), (72," г"), (284," д"), (88," е"), (36," ж"), (204," з"), (652," и"), (472," к"), (94," л"), (228," м"), (548," н"), (556," о"), (816," п"), (218," р"), (828," с"), (372," т"), (222," у"), (20," ф"), (76," х"), (44," ц"), (220," ч"), (16," ш"), (142," э"), (6," ю"), (26," я"), (6,"! "), (4,"!)"), (6,"% "), (2,"(В"), (4,"(в"), (2,"(г"), (2,"(е"), (12,"(и"), (4,"(к"), (2,"(л"), (4,"(м"), (8,"(н"), (10,"(о"), (2,"(п"), (2,"(р"), (4,"(с"), (2,"(т"), (4,"(у"), (6,"(х"), (28,") "), (18,"),"), (22,")."), (2,");"), (834,", "), (2,",-"), (76,"- "), (4,"-в"), (6,"-з"), (2,"-к"), (4,"-л"), (2,"-м"), (6,"-н"), (6,"-п"), (8,"-т"), (2,"-ч"), (415,". "), (6,".)"), (8,".."), (2,".п"), (4,"0 "), (6,"0%"), (2,"10"), (2,"19"), (2,"20"), (2,"4)"), (2,"60"), (2,"7 "), (4,"90"), (2,"97"), (2,"99"), (28,": "), (10,"; "), (4,"? "), (2,"А "), (2,"А."), (2,"АО"), (2,"АТ"), (2,"АЭ"), (2,"Ар"), (6,"Ат"), (2,"Бо"), (4,"Бы"), (34,"В "), (20,"ВС"), (2,"Ва"), (2,"Ве"), (2,"Вз"), (4,"Во"), (8,"Вс"), (4,"Вы"), (2,"Гл"), (12,"Да"), (4,"Де"), (4,"Дл"), (6,"Др"), (4,"Ег"), (10,"Ес"), (12,"За"), (6,"Зв"), (2,"Зи"), (2,"Зн"), (8,"И "), (6,"И,"), (2,"И:"), (2,"Иг"), (4,"Из"), (4,"Им"), (4,"Ин"), (10,"Ис"), (8,"Ит"), (6,"Их"), (8,"К "), (10,"Ка"), (2,"Ке"), (16,"Ко"), (4,"Кр"), (8,"Ле"), (4,"МИ"), (2,"Ме"), (6,"Ми"), (2,"Мн"), (2,"Мо"), (2,"Мы"), (2,"Н "), (2,"НА"), (16,"На"), (12,"Не"), (2,"Ни"), (14,"Но"), (2,"Ну"), (2,"О "), (2,"О)"), (2,"ОН"), (6,"Об"), (10,"Од"), (8,"Он"), (22,"Ос"), (2,"От"), (6,"Оч"), (2,"ПО"), (30,"По"), (24,"Пр"), (2,"Ра"), (8,"Ре"), (2,"Ро"), (20,"С "), (2,"С)"), (8,"С,"), (8,"СИ"), (4,"СМ"), (2,"СШ"), (4,"Сл"), (8,"Со"), (2,"Су"), (2,"ТО"), (6,"Та"), (10,"Те"), (2,"Тр"), (2,"У "), (6,"Уг"), (2,"Уд"), (2,"Уя"), (2,"Фа"), (2,"Фр"), (2,"Ха"), (8,"Хо"), (2,"Це"), (2,"Чт"), (2,"ША"), (2,"Ши"), (4,"Шу"), (2,"ЭС"), (2,"Эк"), (14,"Эт"), (2,"Юг"), (2,"Я "), (2,"Яр"), (466,"а "), (2,"а!"), (8,"а)"), (54,"а,"), (4,"а-"), (36,"а."), (6,"а:"), (2,"а;"), (54,"аб"), (124,"ав"), (14,"аг"), (72,"ад"), (114,"ае"), (58,"аж"), (154,"аз"), (24,"аи"), (26,"ай"), (422,"ак"), (270,"ал"), (174,"ам"), (350,"ан"), (32,"ап"), (86,"ар"), (204,"ас"), (372,"ат"), (4,"ау"), (2,"аф"), (44,"ах"), (140,"ац"), (74,"ач"), (28,"аш"), (86,"ащ"), (48,"аю"), (96,"ая"), (18,"б "), (2,"б."), (38,"ба"), (176,"бе"), (2,"бж"), (8,"би"), (2,"бк"), (34,"бл"), (2,"бм"), (28,"бн"), (140,"бо"), (44,"бр"), (32,"бс"), (50,"бу"), (24,"бх"), (30,"бщ"), (12,"бъ"), (158,"бы"), (16,"бя"), (312,"в "), (2,"в!"), (2,"в)"), (42,"в,"), (2,"в-"), (8,"в."), (4,"в;"), (350,"ва"), (4,"вв"), (10,"вд"), (256,"ве"), (64,"вз"), (158,"ви"), (12,"вк"), (96,"вл"), (4,"вм"), (86,"вн"), (298,"во"), (2,"вп"), (22,"вр"), (88,"вс"), (12,"вт"), (34,"ву"), (2,"вх"), (18,"вш"), (154,"вы"), (18,"вя"), (2,"г-"), (52,"га"), (30,"гд"), (12,"ге"), (58,"ги"), (6,"гк"), (22,"гл"), (2,"гм"), (6,"гн"), (308,"го"), (86,"гр"), (24,"гу"), (22,"д "), (4,"д,"), (2,"д."), (160,"да"), (2,"дб"), (22,"дв"), (8,"дд"), (248,"де"), (106,"ди"), (4,"дк"), (74,"дл"), (16,"дм"), (128,"дн"), (178,"до"), (8,"дп"), (38,"др"), (32,"дс"), (4,"дт"), (76,"ду"), (2,"дх"), (2,"дч"), (2,"дъ"), (16,"ды"), (16,"дь"), (16,"дя"), (882,"е "), (4,"е!"), (8,"е)"), (66,"е,"), (2,"е-"), (22,"е."), (26,"еа"), (44,"еб"), (66,"ев"), (118,"ег"), (228,"ед"), (82,"ее"), (38,"еж"), (134,"ез"), (4,"еи"), (138,"ей"), (80,"ек"), (356,"ел"), (310,"ем"), (686,"ен"), (36,"ео"), (22,"еп"), (398,"ер"), (344,"ес"), (402,"ет"), (10,"еу"), (28,"еф"), (36,"ех"), (20,"ец"), (62,"еч"), (24,"еш"), (14,"ещ"), (6,"ею"), (4,"ея"), (4,"ж "), (42,"жа"), (8,"жб"), (36,"жд"), (156,"же"), (44,"жи"), (12,"жк"), (110,"жн"), (2,"жо"), (10,"жу"), (36,"з "), (4,"з,"), (4,"з-"), (2,"з."), (252,"за"), (4,"зб"), (102,"зв"), (8,"зг"), (26,"зд"), (4,"зе"), (10,"зз"), (18,"зи"), (88,"зл"), (44,"зм"), (90,"зн"), (154,"зо"), (26,"зр"), (60,"зу"), (2,"зъ"), (38,"зы"), (2,"зь"), (2,"зю"), (8,"зя"), (866,"и "), (14,"и)"), (112,"и,"), (104,"и."), (8,"и:"), (38,"иа"), (36,"иб"), (82,"ив"), (22,"иг"), (54,"ид"), (264,"ие"), (2,"иж"), (136,"из"), (160,"ии"), (62,"ий"), (212,"ик"), (120,"ил"), (268,"им"), (226,"ин"), (68,"ио"), (14,"ип"), (82,"ир"), (320,"ис"), (366,"ит"), (42,"иф"), (122,"их"), (20,"иц"), (106,"ич"), (8,"иш"), (14,"ищ"), (44,"ию"), (196,"ия"), (380,"й "), (4,"й)"), (14,"й,"), (18,"й."), (2,"й:"), (4,"йд"), (2,"йл"), (14,"йн"), (44,"йс"), (24,"йт"), (2,"йч"), (6,"йш"), (184,"к "), (22,"к,"), (2,"к."), (2,"к:"), (248,"ка"), (14,"кв"), (108,"ке"), (16,"кж"), (170,"ки"), (2,"кк"), (40,"кл"), (20,"кн"), (530,"ко"), (112,"кр"), (10,"кс"), (88,"кт"), (86,"ку"), (10,"кц"), (58,"л "), (4,"л)"), (6,"л,"), (4,"л."), (136,"ла"), (2,"лг"), (326,"ле"), (32,"лж"), (408,"ли"), (6,"лк"), (4,"лл"), (14,"лн"), (248,"ло"), (122,"лу"), (20,"лы"), (360,"ль"), (54,"лю"), (150,"ля"), (310,"м "), (4,"м)"), (68,"м,"), (28,"м."), (2,"м:"), (2,"м?"), (186,"ма"), (268,"ме"), (192,"ми"), (16,"мл"), (36,"мм"), (70,"мн"), (234,"мо"), (126,"мп"), (2,"мс"), (102,"му"), (22,"мщ"), (146,"мы"), (14,"мя"), (56,"н "), (6,"н,"), (6,"н."), (484,"на"), (14,"нд"), (370,"не"), (6,"нж"), (720,"ни"), (46,"нк"), (330,"нн"), (856,"но"), (2,"нр"), (24,"нс"), (76,"нт"), (64,"ну"), (96,"нф"), (26,"нц"), (366,"ны"), (30,"нь"), (4,"ню"), (58,"ня"), (820,"о "), (2,"о!"), (130,"о,"), (24,"о-"), (22,"о."), (2,"о:"), (2,"о;"), (4,"оа"), (330,"об"), (556,"ов"), (254,"ог"), (220,"од"), (140,"ое"), (134,"ож"), (128,"оз"), (38,"ои"), (208,"ой"), (70,"ок"), (382,"ол"), (440,"ом"), (280,"он"), (26,"оо"), (174,"оп"), (316,"ор"), (502,"ос"), (366,"от"), (10,"оу"), (32,"оф"), (26,"ох"), (16,"оц"), (56,"оч"), (20,"ош"), (16,"ощ"), (8,"оэ"), (2,"ою"), (16,"оя"), (10,"п "), (6,"п."), (176,"па"), (110,"пе"), (16,"пи"), (2,"пк"), (16,"пл"), (6,"пн"), (514,"по"), (2,"пп"), (452,"пр"), (6,"пс"), (4,"пт"), (20,"пу"), (20,"пы"), (72,"пь"), (32,"р "), (2,"р)"), (18,"р,"), (2,"р?"), (552,"ра"), (6,"рб"), (22,"рв"), (34,"рг"), (4,"рд"), (310,"ре"), (16,"рж"), (190,"ри"), (12,"рк"), (2,"рл"), (102,"рм"), (86,"рн"), (480,"ро"), (4,"рп"), (2,"рр"), (28,"рс"), (6,"рт"), (166,"ру"), (2,"рх"), (2,"рч"), (96,"ры"), (16,"рь"), (30,"ря"), (96,"с "), (2,"с."), (54,"са"), (62,"св"), (10,"сд"), (178,"се"), (202,"си"), (148,"ск"), (218,"сл"), (16,"см"), (138,"сн"), (200,"со"), (170,"сп"), (20,"ср"), (68,"сс"), (944,"ст"), (80,"су"), (4,"сф"), (6,"сх"), (2,"сц"), (16,"сч"), (4,"сш"), (12,"сы"), (26,"сь"), (192,"ся"), (320,"т "), (42,"т,"), (22,"т."), (438,"та"), (236,"тв"), (20,"тд"), (602,"те"), (376,"ти"), (40,"тк"), (12,"тл"), (2,"тм"), (96,"тн"), (616,"то"), (194,"тр"), (142,"тс"), (2,"тт"), (60,"ту"), (6,"тч"), (64,"ты"), (400,"ть"), (16,"тя"), (162,"у "), (24,"у,"), (2,"у-"), (10,"у."), (6,"уа"), (12,"уб"), (14,"ув"), (66,"уг"), (124,"уд"), (54,"уе"), (80,"уж"), (10,"уз"), (2,"уи"), (10,"уй"), (40,"ук"), (16,"ул"), (42,"ум"), (10,"ун"), (46,"уп"), (50,"ур"), (50,"ус"), (72,"ут"), (2,"ух"), (96,"уч"), (14,"уш"), (60,"ущ"), (2,"уэ"), (142,"ую"), (40,"уя"), (8,"ф "), (2,"ф,"), (10,"фа"), (42,"фе"), (44,"фи"), (2,"фл"), (116,"фо"), (8,"фр"), (2,"фу"), (10,"фф"), (262,"х "), (2,"х)"), (26,"х,"), (8,"х."), (42,"ха"), (2,"хв"), (2,"хе"), (18,"хн"), (100,"хо"), (14,"хр"), (4,"хс"), (2,"ху"), (2,"ц "), (4,"ц,"), (8,"ца"), (2,"цд"), (60,"це"), (198,"ци"), (2,"цо"), (2,"цу"), (4,"ч "), (86,"ча"), (240,"че"), (140,"чи"), (8,"чк"), (82,"чн"), (2,"чр"), (142,"чт"), (18,"чу"), (6,"чш"), (6,"чь"), (6,"ш "), (18,"ша"), (70,"ше"), (44,"ши"), (2,"шк"), (12,"шл"), (14,"шн"), (14,"шо"), (12,"шу"), (4,"шь"), (18,"ща"), (142,"ще"), (188,"щи"), (2,"щн"), (10,"щу"), (6,"щь"), (8,"ъе"), (8,"ъя"), (262,"ы "), (44,"ы,"), (28,"ы."), (2,"ы:"), (46,"ыв"), (6,"ыд"), (166,"ые"), (8,"ыз"), (70,"ый"), (2,"ык"), (48,"ыл"), (102,"ым"), (2,"ын"), (6,"ып"), (2,"ыр"), (18,"ыс"), (78,"ыт"), (122,"ых"), (60,"ыч"), (22,"ыш"), (6,"ыя"), (366,"ь "), (36,"ь,"), (26,"ь."), (2,"ь:"), (2,"ьб"), (2,"ьг"), (10,"ье"), (82,"ьз"), (4,"ьи"), (46,"ьк"), (4,"ьм"), (160,"ьн"), (52,"ьс"), (12,"ьт"), (26,"ьш"), (106,"ью"), (2,"ья"), (4,"эк"), (8,"эл"), (2,"эн"), (2,"эр"), (124,"эт"), (10,"эф"), (2,"эх"), (106,"ю "), (20,"ю,"), (16,"ю."), (18,"юб"), (18,"юд"), (8,"юм"), (4,"юс"), (138,"ют"), (20,"юч"), (102,"ющ"), (506,"я "), (6,"я)"), (60,"я,"), (26,"я."), (42,"яв"), (4,"яд"), (42,"яе"), (4,"яж"), (42,"яз"), (6,"як"), (6,"ял"), (18,"ям"), (8,"ян"), (2,"яр"), (12,"яс"), (60,"ят"), (4,"ях"), (4,"яч"), (4,"яш"), (22,"ящ"), (36,"яю")]