105 KiB
105 KiB
from collections import Counter
from math import log
import random
from dahuffman import HuffmanCodec
from collections import Counter
from math import log
def unigram_entropy(t):
counter = Counter(t)
total = sum(counter.values())
return -sum((p := count / total) * log(p, 2) for count in counter.values())
def save_codec_to_files(t, path):
codec = HuffmanCodec.from_data(t)
encoded = codec.encode(t)
encoded_text = "{:08b}".format(int(encoded.hex(),16))
# print(encoded_text)
# codec.print_code_table()
# print(encoded_text)
with open(path, 'wb') as file:
file.write(encoded)
codec.save(path + '_table')
# save_codec_to_files("Ala ma kota", 'x')
text = ''
with open('100k_corpus', 'r') as file:
text = file.read()
print('unigram_entropy: ', unigram_entropy(text))
codec = HuffmanCodec.from_data(text)
print('3 pierwsze znaki', "{:08b}".format(int(codec.encode(text[:3]).hex(),16)))
codec = HuffmanCodec.from_data(text.split())
print('3 pierwsze znaki', "{:08b}".format(int(codec.encode(text.split()[:3]).hex(),16)))
print('unigram_entropy words: ', unigram_entropy(text.split()))
save_codec_to_files(text, 'on_chars/100k_corpus_coded')
save_codec_to_files(text.split(), 'on_words/100k_corpus_coded')
unigram_entropy: 4.490477053022786 3 pierwsze znaki 10110000111001101111011 3 pierwsze znaki 111111000001011110000110111110111101101 unigram_entropy words: 10.188508379298268
text = ''
with open('100k_jednostajny', 'r') as file:
text = file.read()
print('unigram_entropy: ', unigram_entropy(text))
codec = HuffmanCodec.from_data(text)
print('3 pierwsze znaki', "{:08b}".format(int(codec.encode(text[:3]).hex(),16)))
codec = HuffmanCodec.from_data(text.split())
print('3 pierwsze znaki', "{:08b}".format(int(codec.encode(text.split()[:3]).hex(),16)))
print('unigram_entropy words: ', unigram_entropy(text.split()))
save_codec_to_files(text, 'on_chars/100k_jednostajny_coded')
save_codec_to_files(text.split(), 'on_words/100k_jednostajny_coded')
unigram_entropy: 5.976822702978705 3 pierwsze znaki 101100101111000110000010 3 pierwsze znaki 11110001000010011110110110010000 unigram_entropy words: 10.629740889027198
text = ''
with open('100k_gemotric', 'r') as file:
text = file.read()
print('unigram_entropy: ', unigram_entropy(text))
codec = HuffmanCodec.from_data(text)
print('3 pierwsze znaki', "{:08b}".format(int(codec.encode(text[:3]).hex(),16)))
codec = HuffmanCodec.from_data(text.split())
print('3 pierwsze znaki', "{:08b}".format(int(codec.encode(text.split()[:3]).hex(),16)))
print('unigram_entropy words: ', unigram_entropy(text.split()))
save_codec_to_files(text, 'on_chars/100k_gemotric_coded')
save_codec_to_files(text.split(), 'on_words/100k_gemotric_coded')
text.split([])
unigram_entropy: 2.932690237976291 3 pierwsze znaki 10101111 3 pierwsze znaki 10000000 unigram_entropy words: -0.0
['dcbbbbdcgdbbbbddgcbcbkdbjfcdhkbdcbddccbhcccdgbccbdbejddcbccfgcdeccbbfdjbegbbbcdecbebegdcdbbdebbnbdcbbdbkbkbbcjdgcfbbcdcccfbeddfbdbejbdfeccbbbcecdbcccbbgfccbebcebjbfbbbdecbbbbcmbfekbccbbbdbjbhhigdeeefgddbcbbcebgbcdbbekdtbcfbjccgbbbvbmdeidhbbbbbbbbbgcpcekjbcbbhcbclmdbejfbbdcfchcbbgecfjebbegbbbeeffdbbbedcfccbbeedgbcbbdgebcbecfbbbdddbbebhcmeccbcbhhebcdcbdbedegchdcdeeobbfbhcebebfcfbbdccbjbedcfhbgbeeedbbcbcfcebdbcccbbiiceceeblddedqbbbgbhdhbbcbocbbdbbedddebbecdgdbcgfeebbbffbecddbgjbccfcigccbdccccbbcddjeffcdgebfdbddbcbdhcdbjcbbccbcbcdbfcbcfbcfcbdcbdbbbbfdbgcelfcbedffiecegcccecdcbhccfifbccffdbbvcogddbdlffdgecbbecefebiifbgcchbbcchffggccgbbbgcmbbdcfgddbefdccdedbbcdcebemcjdqcbcfbcbdcbcddfeecdcbgcbmbbcbcfdchbdecedjblgbhdcidbhchicdnfbcdbjecdeddbbbcbbfeegdebcbmbfghbbhccbjebebcbbfbekbhbdffebebhbfededbgfckbbkccbebgcgbbecccbdcbbdlbbcgcgcdccbcbdofeedbbdjelcbffcefcbekdjbcccedbgbdcdhbebbesdbeddbcecfcjmgcbbdbcedbddbdkddgfebcbbbccdbidbbdbkbbojcebcffddcebedcfdbbejddhgbdbccebkbbehgbbfeccdebcefhbbfigbkcffhdkbbccdbcdbdcjecfecibgcdgcdccfccbbfeccbbbeeedccdhcfbecbcbdbdgdkbbbdbdfhccfdebclclcbdbdbbbcccbbbciecceecbdejcgbihibfbfbgcbfcdbcdbbfbbcghbhjcbddcdccdcccebbchbbccdefwbbedbdccddbbdbdbhcbbbfcebgjbebccbccbdcebcbbbccbbfibdghlecbchbdcbefddcncccebbdidbgdcgcbcdbccdcbbfbchfdbbccbbfbkfebcfbfnbbcgdeddbbcccdbcedcgdbccbhccbbbfcgbefghddbfdcbbceebcbbgbbbcbfgecbbbcfdececbgeegbbdgeccjcbcbdecbbcobdbbfceegbdbccbecbbcdbcfbiccbbccceddcegrdbfibbchbbbebcdbdecdlcfedbgbebiebbdbbbbbfcdgbbcebcbcbgccbndecbbdbbgcbbbgebbbccdbgdedlccgefbdjcdebeffbcehdfdbbhbdcbdccdbefjcecccibbdbbdcebbdcecfbghfdbbcbbfdcgchbgcbecjbdbibfdbbcdbfccbjgbmcbddifbbchbfibbeeffbcceihjochccbfchbgcddbdebcfdmbdbdgcjbddhddcbdbbdcbcdlodcbbfdbjebibdbdefbbdcgcgdfgdclbcbkbgbbebcbcjcgdfdbebbebbddebdbccddgcbbedekbfdcblccbbcdbbdcndbcebbocecfdhbikddhcgciggbhecdecbbgdfdfbccbkdifdcbbbdcdheceblihefdbddgbbgfbdbcdbfefhfhhebbbcgddchbbdgbcbicbdgedhdbbiecfdbhbcdkbgcdkdbccbdbbfbicebbbgebpibecbkebbcfdoecdhbbcbddcebghdbfbecbbdjdbbtfbbdjiebbbbbbbcbccbdcebddcdijcbdegcbkdfdtbbgcdcfddfdbecbehcbebgbedibdceddbbkbdcckbcdcebfeecdgehbgcbedgddeecdebbceccbcdcdbfchcdfefcfbebbccfdbebhcddbbhcgdbbcuddbjsbdlgbbbcbcgbcccecbbfchidcdecdfdjhbbdfbcedcebbbfcicdcggjbdcbfngbbcbcbebbbbbcbhedcbjgccddebbbmbbhddcofcdceecefddfhecebbdcbfcbbbcbcbcbfbdgdcebcbbefbdbcbbighbejbedbbccbbecgcgdjcbbbgbcrcebdccbdbgccdbdebeceecdbbcegcecjebbffdcccjccdddebbfkddbcgbbfcgbddhfcbieecibbdffcccjcdcbcehhddcbfbddfccbchbedddpbbecbbdebjcbfbgbefbfcbeddbddkbbbdcfefdgfcfhebcbbjfcibchbbbdibfdbbccecdbcbgdihbbbefcbdbcedcbbbecbbbibcifbdbbbbbdcccbkggfbfgibddecbeebccbdbbbhbecdcbffgdbbjbcedccejimcdkfgcfdbedcbecccbbecbndgeefedbccbbdfccdcbchcibjbjdccbfcbbcefgehebebcibdcegbdgbicbbecbebeebcebgbfeebfbekdbbbiecddebfdcefkefcbdcbhbchdbdebbgbcbgfcfefecdbbbfbbdcbbbgecgfcbbgddbcbecbbbbgbcdccbeedjdllbdcbdldbhcbfecgbcdbelbcbcdcdcgbhdcbbibdbcbcdgbcclcdbcdbebfdbdebccdccocddbdfdbecececccbdecgbbdfdchbbhdbcgcedgbbdcbebbbmbccgbchfkeebbedfbbjdbccigfbcbefcicgbcccedbbgdbcheccbbeddcbccbcbcfegfddbccbbblccccccbfgegcmbdbhcbhcdcccdfbcbcbcbbjcbcbccdbbdecfbdibbbbbfglceedgdgcgrbhgfbgcbfegcfuikggddggcdcdccefbcbjcgfcfcdbccccbebbbdcbbehbbcedcbfhbbgdcdcecbgbbeebbfdfbbcccbbdgccbdeccfdbbiiebbcbbdhcefbcfcdddcefddebbcebbfjebbbbcfcdhebbcgbcicdefbcrdcbccdcibgbecdcbcdcgfcbbbjgkjdfbecbbbgcccbfokddebdcejkbfhghdgccbdgbldcfbcgbfcboebbbmcdebhbpbceeebceeedbegdidecbefebebcnfdeckbgbdbbcbeeebfbelgcffcgekfdbcbecbghcbbbccpgbddibrfbicdbidbdbcbcedcbhbbdcbcefbebgdbdcddecdgedgbjcccgdcfgbbgcdbfhcddbfieldcibbbdcchbeceebidbebhbbcibbfebbgbedbbffbeehcbddbdedbbcebdbcbecbdebbcbbbhdcedebcbbfbhbcndfjfbcbjicbmbbeccbcdbdececdcbgbbdbccfhfdbjcbbcebecbddcelcbhbfccdhccdbhcedbdccdchcfffdddcecbnjccfbncfbffbbbgbbfdbdgfccbbebcfbocgbbldeebcceggdcbedbceiccdecerdbbbdbehbcfdebddbffcccbddddcbecbbeecbbdedbbebdbbebbcbbcfcgbebbdbddbjcdgebchcbckdfcdbbegddbbcbgcbbccgcbbhbbbbchbdlbbffecdbbdbecefkbccbbjgbbcdcbbbjegeebccbcbmcbebcbbgbccedcgecbebcbjbbbhbdbccncebhfdbgjebcbbgddecceeefofbecebmcbidbbbeedhbcfeibfdbbbchbfikbcbkejffbcfecbgcjjenkbibccdcebdcdhbbbddbcncfihccgcgbbddbdkfgdbbbmgdgddfnebdcbdbfebblbhfbbegfcebbcdiedibdfgbcdgedbbgdbecbbbbcclebicbfcfbhbgicbdbddebdgejcbcbhbbjbbbcibceiedcgbbbesbndgbbdddbbnbcccfifccjgmhebbdbdbdhgddbbbebfbdccmjccccehfecbgdcbbbhbcbcbdedobdcdbdeccncdfbhdifdbbfhbbbbbdcbefeddbddhechhhbbdbbggcbhenllcbbccgebcbmebcdcgcjcjibgbdhbbdbecdgdbbcccdkccdbcheddbhcfbccdcbceccbbidhkhgfccgbekgdbdfcfbbbbccbfbbbgcbddcbeeddfdcbcdbohbfccchdbccbcfbcbcfcbhgjbdfcbbbbghebdebdccbcckfdcbbclelgbcbfbbbdbggbdbcbdddchfcbbhccbbeebccbdfbbgehclcbdccccbbcbhbibfddcceebdjdbbcbdbdcddfjhdgddcfibcccbibbdfecfgbgeidbcbbbcbeebcldegddegefjmdcfbdfcfccebcgebgbbbeebgdbfbddmbbbddbddbfycbbdbbbbcecejlcfjecbcbceeldddcmbeeeccjbfbcbccejdbeldcddgbcebgdeehbddfbfbdbggdjceefchbbbecccehbcbcdjccbfbdscceccbbbbbfdcbgdidfbcdbcbdbbbdbblbbcfbcdbdgcjbeibbebdcbbcbdgfecfcfceccheefhefcggbnbcbdcjhfbbbiffdccdbefbcbcfbcbecfcejcbdceiccbcbbbibcgcbdcbcccjccgeddgdpjbbddbbmcbbbffbcechibobdeblegbbdbgdgcdfcccbccbgecbcegbcfcjccggbcmbfcdbmhccbcbbbcbdbcbehhebbbchccbbbcbdbebfdcebifcbhgbdgfeihgfbfbdchcebcdjbecddkdbccedbdblccbhfecdbiccdgcbfidccchccbclhbbgccfbccchchbndfegbbbbebhededbbdcjgdhfcebbehcfgfhdfbdbecdcecddgdbfbbbbhedcdcbedfbdeibbfbcbcbobbdochbbebfcgfiebefjccccbbcgbebbibbdffcfgdkbdblefdihfkjcikccbblbbfdegkhicddcdfhcceebdmccbccbhcbcdccgdcheebdcbdgcegbbcbekbeeiccbecccciefbbcbcdedcjcbevbcdcbjclbechgcebgcddeofbeebbbbbbbcdefbchcbbebcfdgecflecnedmcfcncbbbccddfcgccbbjpbdccbbchjbhblbehebbbgcdffcebbdbbcdbecdcegbghdfgdbedobbebhbbcbkbbcdbccefccgfdbccegbbcedbebbfbccqebibebbdbbiiccccbjgeblbdffcbmmbcdjbghbdcbbidddhbddcdecfcceeccfcbcbedpbccbjfbdbbcibcjmbeebbbbcfcpcbdbbccbbegbeccbcbcgcdbcdcbcgbbbbdciccedercbpbbbbjgcgbdddcpmcbdbbbdddgddbcdehbibebeslebbebbebecbbbcidbbdebkmbccecehbddfkbnfhbdeflkhddfjbccddbdbchbdeffhdechgfcbcbccgbbbidfcbcedegbbedbcbcfbfcbgjcbfbibcclbbbebcecbcbcfdbbcffcibbbbbbdbbfdcigbifbbbcecbbdgdcbeefcdeechgebdkecdgbkjgmhbibbcfdgeegpbbgcbfenbmcebbeddcccbbbeccbeffbcbfcffcbbbbbieccfdbdfbcecbccddhdjbblbegdbbbcbsddcccbdcbcbfcofeeecjcbbebhbbdebbbbffbecgdbccdgbbcdggcbbecdbecebbdcebeeckcidlccedbxbcpfccgfcbcebgcbbbbebbbhbbdibccbbebffebbbfcccddgbeibbgeccdcdelbbbddcdgbdebfbfbdbbcbdcbbcicfceefcfhkbdcbkcdhbccecdegdbcbcbbbbbbcbfcbbfbgdceeehbdeecedhbjdecbneebqbefbbcbidcbcegbbbbdlbhccededebdeobekgbebbeccdcidcccbgbeeeddcgbcmecbebbbqcibddfdgfegccbeidcbdbdbdcclgbcdbhbfceeedcdbdhbcfedecbejdiebcbihebccbcbcdeegddcdbfgfebjbbdeclcbgmghccbedbdbfbbdbdebbccdigebgcccejceicblciccbjfebehbfddbbljcccncbgbhhbbdecgdbbibddbgibbcdbcbebcdffbedbccccbbcbcbfdcebfcnbccbeeebfbbfccbehdbdccegedccbdcbiecddeeefhhbibcebdeehdibcgideboiccdeeibjcbbcbdfibjibbdccbdgcCbfbocedbbecdbcbbddldbecfcjchbfjkdffhbfcbbdhmdegfhbbecbdcddcccjbdddhbcfiffbcbcjcbbfbbbcgebebebbibbccddccckibcbcecbeeccbebbebcbbcfbcbdcbdfdjbbbcecbedebbcihcdbfcceccebjbdebbdcflcedgbbceebdbjbbbbffdbdbbbbbdecbeebbbcbcfbbcbbbdddfchbbdbdheckebbbccfnbccbdcebcddddbbcbbhcbfbebecfdkcccbbedehbebbbbgbccdbfbheejdcidcffbgciebcbbcdbcbebdfbbfdgibbbcjcccbffdccgdbcbhdedbecdbcbgdebecccggebbkbqdbbebdedbcbbcicbgdddbccddbnbdcfibccdbddcfdhbcdbbbccccebgdddbdgcdrcceccfclbbfdbfecfbbcggeefcgtbbgwhbjhgcbcdcgbebhfbdecheddbbckdibcbbeodbdcecbefcbkcebidhibfcgebeebbddbdgbfbbfbejjcbbidfbdbyccbbcbbcbdcefbbfcccfebebeebdbceccbddbbbbjbbbcccbdhdcbbdebcfgecbecbfbiffcebcbmefibbddkfdbeffcbbgcjgdcfbifcbbdbecdbbbbbfbbbbeldbdfjcbdhdcedddccbckcbcecbddjgbggfbebbgcbcbgbjfbdcdbdcgbkchgcfnbdglbgdbbgfbddftbdgbcbbhhccbbcbcendhidfbedbcbdccdbbbbfbdicdcbbobccebbccbdbedbbbcecebgcdfbdbdiddbbdcbbicdcfeeedbbbbbccebeepedcfbdedbbidckkcgbdecdgdhcbbegcdfbbgedbecbbdcbbbmecebcdmhcbbfegedgeedebghbefbcbbcbicfbedbfddidbcbdhbbcdcfcbdbbbbgdhcijkbcbfbkbcfcfcfcdbecdcbbbbbcfdbccbbbbbbfdfccebfcbcbkccblddfgbgcbbfccbbbdgbchbiifbdbdbdkcdfcfdbdbbbbbedrfdefbdbcbdcdbdfbcbgbbbdbcbbddckccbdgehjbbfhbkfbbdcccgbhebccebedddfdbdebkcifbcedddcdcnbeebbddedhddumghcbbbbiiddbfbeffbbhhbcbjbdfccckbdcdhhdnfcdfeecgdbcfbbdcchddbfdbfdbdceffbdpofecbcbcceeeeebkebbefbfldbbeefhegccebeddefcccfhghfhcdedbcgccbcccbcdbbecdebdbjbbbfecfbmcbddbbccdcbccbebfdccebccgccbdbccbelpbddfcgbchcicbbcjfbbdcodcdddebbdbmccbccbgfbibccbccbdbhcbfbcodecjdbcgejcbgdbbbnebeebgrbbbdchdbfheeebpjjbfhbtbbdbebbdbbbebbecchdbbdfbebdcpcnbceejfcdobbchbgbhccbbbcgbfdbbdeeglchbdocedbcdbcfbbdbdcicdccbbcbrefcdeibcbbjfbgcibdbfbebbccbhcbfbedhbicbbccbecbfbdbbdgdcdfeeckckbefcbbbbgcfbbbckiddflefeficfbkbcbjbecbbdddeebdbbgbdegcdefbcgbehbdbfebccbcbcddjcbbdefhdecibiccibdbchcbbbmbddfddebcicbccjdccbjbcfcubcpbdbbbdfbebcbecejbccnedbedccbjgfffbbrcbbbbbdedgdgibdbcbcbblbdblhcdbchhdbbefbcdddbdbccdbbedeedcbcbbdcdbbcfecfbdbcccceccbgbicjdidbhfbbbdebeebcedfgccccbbbfbebeebcbfcecfbbecdcceicbbcbbcbghbbbgbbccdcbccbchjfbibejbcbdgbbbdjecbcccccbfchcbcbfcbncbcbiddcfbbbdcgbdccbbdeebbdbbbbicbbkcbdfedgbfbgcbbdeecdgfcecbdhbbbbibcbbbcdsedbbdcbdeicbbbbcogbccchgbbceblbgjfcciebbbccdfbbdbbhfhcbgbbbechebefdfgbccjbddfbfbjbdhfhbcicgbbdfbbcbbfbbhgidcbbbbbcedjdbefdbfgbigejdbbcbiccjccbfjcedDjikcbbbceddgkcdcbibbcledecfgdciibejbhcbejfgfbbdbchdbbegeqeecedcdbdfbbegbcibcbfbehibdcdcbcgcefbgbbfcbcfbbfgcbcbbdedgbbbdhbdebbcbbjbebdbckhgbebececbcbbfbdbfbgdbfddcbddcgcbbcbhdcbcfbdgbccbbhcbbedcbgcbbeccijeejbbebcfbcdhccdeebbbbbcfebfccbbbcbdbdbbcbebdddhbebecbgfnbcnicebecicbhbeeceebfbbbgbdcbgjbcxbckbbbdbdhccdfbdbbccbblbjdeddmeBdcfebbfebdddbcccdbcgbebebdffbffcccdbbcfcjbcfbbdbbmbeecbddjbbcdbhdbddbdjcefbbdefbebdbbbcdcbbecbbbdbhbbcbfbceccbbecddbebcglcbbbgbecbcgdcdjfocbccbdhdbcjcbdbebbigbbbdcdbbdckbebbbgcchbbbgocdfibcbdbcbecdecfddgcechgbkbbdedbchbcbecbedbhfefccehclfdeclbckibblcbbfhbbcdgbficcecgcbdhbbcbebddcecibeddedefebcfecbiecdfcdeeddbfbddcbcdedccchelcbekegccbbcbebfeicbbccmbfeccgcdbddgiibdbdbebfcbcdchcheebfecbgpdbfbdffbbebgdffccefdeddchbdgedbjcbcbcebbdbbcdbhliihecdqebgcdcbddfjbcbbddfbdccefddhjbdbbbbbbcbdbbbfhbbjfdcbbdcbgecbgffdgbhkehfdbfbcjbbbodcefcbcbecfcbchcbedmbgcijecfiebkcbcbbccbbebdcgbibcbcbbefcbddfbbefbcegbfcffdbhfckdkdhbhccghfgcbbccbbbbjbcbccbofcbbgbdcfbgbbdbchbcbcbbdbcgcibbckdbbihfgbghgbkgccbbcbbdcdecbbbgebcodcbfbcdfebbdcdccbjcbbgbbbgdcbbbfbbboebbddcdfbfcbdcbibcbgccdbbjhbicbdddccfbgbfbcfkcchccddbgdcbbejgbjcbeebbclfbbebibcdhdbhgccekcbbgdcdcbbbbdecebbbiebbbdbcebfhbegbgbbbdccdegfigbbeddcdbeccfebcdbbebccbddegbbcdhddbbdbcbmgbdebhdbcbefccdbedddgbkedcbdcbmccbccdgdbceibgcekcbdcdcdejbdedfbfddcbbbcdbecggbcbbedbdgfechciedbhhmbbmdecekbgbeftekffcdececciebfcbebcecdcdgdcbgdjdceiefcfcccdfcgccfcghebcbcbcffddcjbcfbcckbbbddgiscbbibddcbbcgdbfgcbbbbebcjfhdddsbgcbbcbeecehbfbeebdeblfbgdbfeieebgdccbcnkfbehcedbdbdgbbbbbedddkcdkibcddbbbebbbifbehbcdcbbgbbgbdkecebcbfbmddcddcbgffdfbgbebgfeclgicedbbhbdbfdcgdeefbdfcbbcbgcdkhiccbecggcbcccbmhmebbcbibdecdhedbcgbffefbcbbbcdmcdibdhbcebbbcdcdcfhddpfbjhddddhccbgbbebbefcdpcgdgbgiedbgdbhbbgccjbdbhccebcdbbdcbfccffbefcbbbcbjbdcifdchdbcccfbbcbbgdbbedbbbcqbbebhdcbcfbbbdecgcecjbcccdbcdbcbcccbdffbcfefgbeccbbbcbccbegefibfehccnfbeebidfcgbbdbbffdfcbbbefebccmhebeedbgedcbbbhbmbclncbdbbbccbbcdibfccbbdbbcbcbccebcnbebfbmbbjeheddigciecdebccddbcbbcfgeffdbbbbelghcbobjibcbbdbcbdbcdbcbbhbmfhhccdbebbccbhbbfbhcbebbbdbbidcbdccbeibdedfdbdbccebfdigbeffcccbcbfbpjcfbebbbehccbbebdbhhbjdfbfgbbbbfbbfcgbbdqdhbbbdcbcfddbcbcifcbcbgigbkfbebbgbbccbcbbebdcdbgcbdcbbbcbdbbjdebdccbccbbbbcbdifbjbbfcebebbhfcdbkbbdbdbebcbicfbeecccfbbefcdbbcbbbdbbccjdbjddedcbccdcjbeccbcccdbeebdbddjbdbcbecgkdbbhdcmbdbgbebbcdcbfbbfbbcdjbbbeffcfhbccfcdffegfbbbbdefbcfgbcbdbcddeibfbbjdgeccbedbdcbfbzebbbddbcebbbebdgdbbblcfcdcbcdbgbchcffbddefbbgcbfkcbdbgbbcedudbeggebgidbbgcnjccdbbedhjbbgdbebcbccdjdcecbbcbbccicecbcdbdfbebbffccdedbbfbbdcdfchcbebbcdbcebbcgdedebdieeghnbbedjdgfbhfdbbcddbcibcbcchhccbbbddccdcjbbdbciccbedbbbbdfcdbcdccdlcbcccbdcdjbfbcibcbcebfeccbcbbdjfjbkgddbdggcgbbdbpfbecbcbcbjebbgcedcebcicffecdbbbbedceehcehbshjcbbccfcbiecfhdccedccidcccbbbecdbkddbbbeeeecbbbibfdfhcbhcgdbcdceddbdbbcdedjcfddlbbgccbebcgcbbdbdcbcedbccbecbcbbcbcdfcecbdcdhebbdffcbdcdbfccfcbebcbbhbibdigcelbbgdhbbebbbgecdceeebdbbibhdbgbedjfdbcddbdfebbceccbbcebcccccgdebbbcddbcbdgcbbibbdbpkcfcbkebdiccDbbblccbfdedbbfbbbcdccdhecfbbbhdbfjecbddbcbcdbbehcbdgbccbdccbfdebqbdbbebebidcebgbfckdbcdhdcgbdcjgjbdbecfbbbcgedbcehcedgbdfbdbdebbcdbrcgcfeddbdbedfbbdbbbbcebdeccbbcdfdfdcchbdddbefdcbbbhbbbbbddccbldcncccddcccdhdcccbeocbgbecgcbbobcbbedflbdcdbddbbcccchfebcfeeecdbmgdbbfbfcdbeedjcbccbbebdecidbdcjecjcbciebgdfhbcebcccbchbcdbbbbgdceeddgedbjddcccjbbgdbbbcjcblbeceddbbfbcdgbdbbcedcdbcddbbhdqcbncdbgbbhdbcjcbbbgichddcbbebebeddbfeibfdefcbecbebecgbccecbbbeddhdchbcdelcfeqecfbggbfdecbceibbbegbjihbfdcemebcbccbcbhbecgffdfbbcbcbbgbdbcidfcbbefFfciebcdbebcbdbhcblhccbebcdbccbfcbmeccbbcdcbodbcfbbcchhbfbbbglddhbcbbbcbeddbbddddcdccbcbdceccccdcfddcbfeebbeibghdbcecbbdbchcbddbcbdbcbcbbcecedbcebdccbbbeeblhbbcdcgbccbbfdhbchledcbbbhefhbbmmjcdcfbedbcefghfcbbcbefekbbbnfffcbbdddbhcccebcebdicbcdcchbgefgddecbfecinbbddbigbbcgkcbfbficccgdbddbegdoeccbbfebbhbkbfebegcebkecdhffdclbcgbfbdgcecbcgfcjbbbdcecicbdldbcdcckfdbbdchcbebbcggcbfbebbghekdbebcbinkblbcbkgbbecbegcidfbcbecgbmbbhbdcccdbbddbegffkdbbbecbhhgccbbgfkdcfgdbcjfbdidbdeebdbeccbbbbbbeigfebdgembbcbgibcfibdebbbgdmmecgfnfcfddecbddcbbbbbecbcbbcdgcbcdodibbbgedebcdebbfbcdcbjdjcffcficpdfbbbogbhebbbcegcbcgcbcifdeddccbbcfbdcdefbebdbbhecfccbcbdkhcifbfgbccdhddlbfbfdhgecjicdbdbcbfcdchcbcdfhbbccbbcjccbefeefbdcfbccebbehbgccbbhedccdbebcdbcgbcbcdcgbbcbfdibbccebblccbccbcfdcdccncfhdbbfbchcgbbcbedcddbbbdeebcedebhdbbbdfcecdbbbcdcdbefcbbecbcbggbccgccbgebhbcibcdcfcfcfjdbdbcckbdcdbgibfibccfbfbedcldjdcdfcfbcecdbcbcfdebbcocgdbcbbdcdpbcbedcbkmblbjdfbbddjihohdkfgcckbgbbfbfoebbgbbicddgdbbdccbfbbgbcddcdfdbccbccbbbbbbbbbbbfbecbccbdbbbebdcgbbbfbddbigeehccjdcccbdbcedbbbdbeedbbcicfccbiedigddbedcbbcbbcbbdxcbbecdffbbebbbejbbgdcddbdhebccdfncdcbccbhbccbdffecgeegedbbdbfbccfgbdegcgghbcdfffccbgdbhcbeedcddbdebbecfcbbbjecchccihbnddcbbefbcccdcedfecdebdccjcebdbcddbbbkddejcbhdbcddgehcbbeedffdbfcqbdcdbfbejbdebbhddcebeebjechbdebbdcdffdebbdheedgeocbegbcccfbcbbbebidbksgbfhfebbbhbdoeddmbmbdbbdddbbbcjbbhifdelgnjdbiddcggcfedbcbccdekifdfbbdejdeeemdccccccdchdbbbbbbbegihikcgcbcdbbcbhbbbebcdjceebehfbcbcecebgcbdbccecebbgebcddbddcdfnfeecebblccjcehhbcdehdmcdkbjbbcfccgbgbmfjgebchbbdbfnebibcbddcccbbcbbdkedddfbgchbfbbbfcdebhefccfbeberfbbdbdbckfcbcddcbbbcdgmfbbbbhcbbcelfebddfbdbbjcggkfccbbihcbffisfdffbbccegbkbcbdbccbdbbbbebfiiecbhbcfimfbddbddcbdebbbbcdbdbbbcbfbddcbenjbfjfbbedbdbddbccdddbcebbdddebeicddbbgcbdbdfdcbfjlhcfdcccccgbbbdcbbfibcdbjcbfqeccefbbbdegbehbcbdgecjdggbefbffhfebbdbchdbjffbbedeecbcbcbbbdbbdbccggcfbjfceegbbcebccbfbcfdebbefcbcdefcibjbddbcebffbbecbhfbbdecccccefqbbgbdefbdbjeecbmdehebhfeebcbbgcggfbhfbdgeebbgbbfbcfeebdbgkgbcgfdbihlhbbbegdbcfhbcedchhdcfbckhbgdbdcpieceebbfdbbcbbedelbicecfehfbcbbbgdcgcbedbofbbcedbcbcebddbgbcbcbbhbhbfdcbdcbbfbcgdbdjbbdcbbdddbbkecefebjcbbmfnbbebifbdjbbeegdbdbcccbbckbcccdbbbdccbbcocbbcdkgcihecdfgcbbbcdgdbjicbecbdcbbcefeebifidibbcbebdcbbbdebbbccbeiebbbcbdbcbbcgegfdfbgbdcbhcccsdfekcbgcbbbbbceibedcebbebdfedbcdcfbifgbbbcdbgbebbcmgbdbgbdbbdcccnbbbbbbcbcbihbcebdbjbbccwcbgbbdbdcbffbjgcgbecebfgbcfbcjdbdbddbbbcbcjidcbmfbebeckgbebfbebbebbbbbccbdfbmcgdddebmefeccdcfgckbccebecbcbbbbcbbbebediccfbidggbbcbebdibcbfegfbgfbcbjndbfdcjdcchbmbdbdgdcbcdbbcbdeccbbccdhdbbctbgnbjcdccccgecbnibgecdcciceblbnebcecbdccdedbebdcecufbgbcbbedbdegbbbcbcccbegcchbcdbebccedceclbdbfbeecccbfpcgccdedbdfmebccbeccecebddcbcedbccdfccfbdedcebhbcefcbddbiddbcbecgccebcdbdebbbphcdclcicdcecedbdbbbbcffcofbmfecbbcccdebddegccebcbbbbbdcdfbbebccccfbdcbecdgcgbebihdchbccddcbbbihhbdcbgfecdeqccbcghcccccfbcbbbclbdcdebebbbdbdcdbbcbfbedcecbbgbbgdbcbmdeiccclbdbfbblcdcbkbbkbfebecfbbdccibhccjdbbbddbbcgmbdeccecdbegdcqdedbblgddfbbdhfcbbbcmdbdbcbbcccdfffdbcchfebbdgjdhmhhdbndcgbebdjcbbbccebcbchcdbcchcbbebbbjcbbcfilebbbcbcbfbceibpbcbbbgbccccbbcbccbndfdncbebbddfebcbfegbbhbcccggbfeebjfcbcdbibbegffebhcbigbchbdgdeebbgdccbdndccbbbjccebedkdgbcbbccdcbbcfhdffbegbcecfbbcebbfbbbdbbeecddmmhfbecbfbeghbdedbdcbdgbbcedcibcdcddgbbclcdbcgbcecbcbdbbldceefbdcchddhbdbcfgbfbfdkbjhgbhcbbcjbedddbcpdcfcccdcbdgpebddbdefcdbedfdcfceofceddknbbcdbnbfchbbbdbebdbbdcbdbcbdifbfefddiebbejbhcbecgjbbbebgbbebbbdbddedfdddechdfcchejbcdbgcbhccdhbcecbecccibdccdbbdkccgdhbbbjdjbbifddccdecdcbegbcccfcbdbmefbgdcbpbfcbbcebhcdecdiebddbdcbefbbdbcbcebcbbleejebdcccjddbbccdfbbccckbbcbebffccebefedebdhffcdcerfbcebfdbencgdffbgccecfgedgmbekbbcedcccdhcbebccbedgcccbbbedbidcbcdebiceccqbgcmcgghfebbdbekdgccmbbchgrddebgfbbecdeibbdndbdddbbdbchbcbbfbbccecgfbecemebfbfdeddcbccdcifbccdhicfbbebefbbcbdcbccdcbecbbgbbbdebbdgbbddbbbgdebnbecbbbcgcjclbdefjdgbgeccbbbbcebcbbjcqbgccdgbbdcbcidbecfbbcgfdflebbcbbbbbbmebdbebbccfibcbgdbbebbfccecbdgeqhcbcdecidcbbcibchbcbbfcdbfbcfbgbbbbgcbffbfbeeckebbdcdbceggbjbbgccgbcbbbbbfebceddccbechjbhcbmicbddcdgbbibbjgecbdcdbbggfbgcfggfcbbdcbfedcdbdifecekdcccbcccdcbjdbbdebdcbedckffcbcfgbhcbkcfbggheeebcefbcjeddbcidedcfbbebcecblbdhcebbbhcbbbfbebebgecbdcgcdeddcckbcbbielbbbibbebbcececidbncbdfbcbbfgbigbebeddhcbbdchfcdhcdbbcbcefedcgncddcebdfeccjbogcfkcbgcbifdcnbdbbdcbbckbeefecednbdebbmfbbbehbbdncbbcbgcfceclbbbcckbbbcbkckedcdicbmchceeceeceebcbdhdebcbdhbecbddincgfdecdgjgbdbbbecbfcecdheddcbidcjecbcbgbdhclegfmcdddccbibcefbcbbbbbdecebbcbhbeibdcfbfdbbccedcbbkbbbchbbceekbchdchcedbccgbebcbdcgebfbjhcecbcfebcbdcihbeeebbdccbddbgdechdeidbeefgbdbbcbhcdibbbdccdcbbbcjbbbbgbfbbbbdcfeebcbcbcfcccfceciegcbdcbhidccjhcsbdcccbbieddffcdbebbbgbbccbcdcbdegdflbbbbcbnbbegccbccfbebcpfbcbbebbdecbbecedcfbedcbbbdcbejchbfebhbbgbeecbccccbgchcfgfccdbbfjcccffdccefkibcgcbobekbccehdbfbdcjdbfcfbbcbdcbcbdbbcddccbhddbceecbfjedhcddcdfbfibeehegfcdbbdfbhdblcbbdkbbcdbqbefebcidbbdcbkdcegbdkckbcbccjebbbecbbgibjghdbbbchebkbbbcffbdebbdcbcfcebcjjebbcbcbebfccdbcbbbecccedbggffdhgcbbceecdcbddbbcbebbcbdchbdibccdhcbfddcfdbrececbiceddcebbcbeedbdccdebobbfcbbgfkifbffbeddcdbhfbmcgbeceebdhbgegbcfbdbbcbcbbdfibdcbhbgghbbcbgccbghecdbfbbfgebbbbjcbbcbccbccbiiddfcdhcbobcmfibkbcfhcgjdkcccdfbbbdihcbbgebdfebbebbcbbfggbbfbcbdfibebdeebgjhcefgieeedebbgbbcdmbgedfedbhcbcccfcibcfcdcfejccbbjibbddehbfeccdebdbdjccdjbdbhcceccbcdbebbfcbbcdbbcfcbfbdbbcdddbbdjbgbyddgifclgdecdgbgdijdehbbbbcdbenbbbbbdbcbddhcchbbbbbcbcgbjhebffjedbccbdcbbbjcecbcesbcbcbgebblcbcbcdbgcehjccbgeeedjdgebebbcbfbbdcldeddbcdbdbbcccbebddbdcfblcjmdbjbbjbcccbegdbgddbdbefbksbecddcgbcbcbnfccbfcbecbgmbgtcdgdbbcbcccegfeccbcgbrbcbbbmdbcbicccbbehccdecbddbebgcbdgdbhbbdcbfbbkgecbbedbbibfbgcbjbbibfgcdecmbefbbebcbhbdkbbfdddccdfibfbbbcfbcghcideebbnceibckbbbdgececgebbfcdbfcferbcfbbbcbceedmcccbfbbbdgbbcbedgbefbbcbccedchdbbbbhecchdbehfeckcdbcufegbdbdhbicgodcbcfmcgblbbbbbbbidbdibbbkeefebccddfbbbfcjcbbedbebekfbdbfdicgdbdbogbddjcbbbcfbdgbddbcgbbgbcdcdchmhdbedkbbebfiibgbkcbceicdbgebbbdbicbcchgfbicedobcefcbbdbcecgdbcbbhibkccdjcbdekbccghbchhbdgbbddddbeegbdiccebcdbcefebeidbfibdbbegcbfgbbbbeccdbccdcbdccbebfgcfbcbbckjbdcbefdccdccbbegkdejbcdcbegbibgcddceecbbcbbbcdblccjcdcbcegdcccdbbbcbbdcffcbdbfhbkbcgigbfcccbddlddbcedeedbgdfbbkebeicceibdbddcbcjceidbhgjidcfbfcbcfbdcbbbbecfbdbchifcibkgcbebcbbcbbfcdccicdeccgdcdbhbbgdbfbehdbnbfcljccbbbbdbfccebbgmgdebecibcggdciffccegbcfebdbdcebegeckbdgcbbbgdccjibbibbfcdjbbhbdcchbcbiedejbdqdbcbcbdecfbcbdcecdcccfccibbchcfgdbccecdbdcgbgkecbbbfchccebeefgcbdecbdecedbbccdhicfbjbfbbcdbbedcdcbgbkbgbbcbcfbbddcfgbcebbbebegbhecdlcegddcecdefbebgbgbgcmcbcdcbdefbodiccfmdlbbbbccddfibfdcecbbjhebiccccddcbhbcddcdebddbhhdbhccedlbhcfbbbgbfbddbbbccebhibcbddebbdbjbbbebbcgdghcbcdccidbbccjfjblcfedfbpfgbfdfcceibkchlbbbedfbbbdcfcebdcbcdejbcjcbldmbbbbbbibnegbifbccbgchigdbifbcebcfbbebdgbbcddibcbedccbbbebcfgdbcmdbbbbcbbdcccdbddebdccbfbdficcghbfhieedbdbcecdbebhbchgfddbebmbebccbbccbcfgdccbccbbdlcbdbcbdbccdghcdebcdfdbbcdecdedcddcbbbjddbcbhicdhebjcbdfcidbcibbcbdcnbbcbbbbbjfbffcgcfbbdddcbgccddgeceeedccccbcbedgbcibfbcdcecdjeqdgfcchbdecbctfeenicgdddchfedcccbcfibbebgecdbcdjhbgbkifeffcfbecegbbbdkfcdbgecbebjmbhbdlbchdhfieeenbhbibbhdccfffdbbbbbcecbdfbeecjdcgbkdjbbccbcbdeecbccghddgdcccbedhgjgcbbedbecfebccbeedcbddccbebgcbcccedbcedflgmcbkckdhcbccdcebedcbbbcbcdecfbdcbcjgbcgeebicggebbcedcejjcsbbnbghdbbfbcbcibhfdbdbcbbegcigcgfbbcdhbbhebcfbggbdcdccecfddbgcfgegfcbcicobdbficeccbcefccbbbegfchcbckcdcchccibebbecfkdbbecdbcbbbbbeecbbfbbfegcffgccbkcdddcecibbbdcehgegcbcbfdfgedbcfcbjgbedgfbbbgddfdhgbcibbrbgeebcdccddcgefbgcccfbbecdibjbbdemfbgbnfdkbdeecegfbhbbgcobcddqbefdcebcdifbfehccdceddlbchkbcegbbbcbcbhbbjcgghchhbbccfbccdfjedbeddbcgdbcbhedbddhbedcdfbidiibeebfiblbekbcfkdbdbcbpbbcfbdecbbbcebccbckbfbbbbfddbdbbdbhffeigbcbcgbbecccbdicgdkfddechccbddgbijdfgebbcdbbccbdedbgddedbkfckbbdbcdhbefbefggdbfjedbedcbbgbdhbbbdbcfhccbgddcefbbbdghcbcrebbbfdejfcfgcbdfbbiccmcdgmbbbbbbfcfcccdlcbctcmeccbebegdeeeeddegbbbbofdfbcceefbbcdecdccbbbddegdjhbcbddbbdbbeecbdhbcqbdcbdffcdebdcbieedhbecbcbbbcehdhflfccchbgbbbdckbbegbbbbbbbhbbpebbecbgcdbghcbdbicbdgbgecbcbbmobiheeftbbbfbbdfdbcbdhbbbbceccefcdceifdbccidblkbccdfdgddecbccbcchcceieebbbbfhbbofbbbccbeebcfbldcbbfbccdeddgbedcbibbbbbbcbbjdkbfghbbecddbcfjfcickbcebfgibbcbfkguigbdbcldcfcfbbjfbggdcddhcfcbdfbbbebccbgefbbcecemchbdbdhbecbbbbcjbbdddbccbdbiecbbbbbdfebcfbbdcbbccddgfbdbbcddblbbbbiockccdbbbgddjebcbbedbiccofdccbbddhodbebdhbgbeebdbcccfeccbbccdcgbcbcfibcggcffbbhxdbcbfebmbbddbcdedcbcdjdhecbibbdcbdbdbfeecbcfbccibhebdecbebkcbbdgcdbcdbccpbfbdecceinfcgcbckgbbbccdbdbjicfdcjbgefbhbebdbdegbcbbdbbemjdbdgefheccdhjgfedcdbekicbkbddbgcclcdbcbbccgjgdfcbbcigddefdbgcibbddccbbbbgbdeibbdccdcbcicbdbepfdbebfibbbbbbeddddkpdcbccbcfcgbdcedbedebfbekeccdbccdbccbcfbcbbdbhbhbcbfdefbfgeedidbbebdcfcbelcdbdbbeiebdcfcblicebdebhdcfebgbdbkgecbbdctfcbfccbffbbccdbcldembccccbcdhcgdebcbfcffbcddbgdebbbqfdddbcgcbifghdcbbecbebbffecbbehicbgdcddgdfbbedcejcgbbdgchdbbbdejbbcibeehfbbbbeddbccbcccicbfccedbgcfkccbccecbgbdecbbhfhhefccfceeejdcfcbiidfidecbcbdcdbdccbbbbneecdfcbebgkbgbkfibfbcccbeidebebcckhbbbcckfgdcddbgbddbfcbbedebgfbkbccedbcegjgihedfbcbghbcdgecebfbcccblbbegeobbebbhheefcbhjdebflcfddcedebbbfdjdbecbdcgefdbcieccdidbcfdcjebhbbcebfqbgdbeccciehcbdefckdfbdbdbdbdbbcbejdbeebigchcedcedbkdeedhcpbbbnebdjkcfqbeoeebbhcfcbbbbbedecbfdccbgbcemscbbdbbbbhebkphebcbgbdbbdbbccfdcbccdecccbdfccdbcfbbbedbgbejbfkblccccbdebifbcdbfcffibbdkdbcebhbgbjcbfjbcqbcbbccbcbbhdbdecedccddjdbicbbcbbbbdbbdebcbbifbcehbbddbgbdcncgbbbebhcbcedebdbdcbchebbgdbefbchbbddbbbbedccbfcgcfblccjbdhhcccbbbbchbcgcbhcbcebbebddbcccbdcbbccdfcdbeddcbbbbbbcefbibcbbsbccgccebbhcccbefdcgbhefbcdhbcdcbccdicedbbhfkfcccbbdhbbdjjgfbedgeiccbeqbdcdfdgcecefefgcdbbdbbddbbdjfcjbhbdbbbbebbbcdbcedejdcbgdbhbebbdkbnbdcbebdbcccfebgebbbfccibcgbccbbebbbbdegbcfbdcbbjbhbbbhbbbbkfgbbcdfdbebbfebbfbbbcgccbcicddecbcedbbccfeccfodchqbbnhgbehdccgbeicdcebdhbbecfcbbcfghbcdcfengbddccbbccbkhhiefjddpddfedgcdddjcbdeefgdffcbbebbibbbdbhdbbbbcbbbdfedkbdbccbebfgccbidccdceebdbbejebchcbccbebbibdecgdhhdbcgbefebjedhhbjbbccbdhccbbogdcbccepbhedckdebhddbdccbfbndibdbcbgecebeccedbbcgebfbcdcbhfcbcebcfbfbtbefebebbcjjdcdbegeghecdbhijbdbccbfbbdcbckqdbgeejcbbcdbbdnfdccdbccnbhcccdbhcdelbgedbcdbbobifbbbddcfebddcbdcbicbbbbgciigdcechdbbdbbbjcebeedcdbbbebdggbchdbbbbbdbdcbkdbccbbbbcdbfbcfhfjcjcbbeebdcccbhbfbffbbecdbgbccdbbbnhkeebccdbbbciekleccicccbldcbcfdrbdfbbeccbeeecbibddbbcececdbbgebbcmbicbcejfcnfbhdgbcbfbcbbbccbfccfbebdiicccbcdfbbccbcbdibibdbdddgfebhffgcccbcdcgefhbbgdfbefbebcfcedgdgcbfcbbddcbbbbddfcdcedifeedbddbdbhbbbbcbbbcbfhbcbbbibccgncbfbgcbcbffcfecdeeicbdbebccbcchcccjbbdcbbgdnefbhccbbcecbdlicdfebcihdgqgefefbebfccbbbeecdbebccddgeccdebcbdcgebecbbcqbcfdbcgebccfbefcedcbfgbjbcdgfjcefceeckedddcjdbcfejeedcfebmhfedbbbdbbdbdccebfcbddgcccebccbbcbcecdbccjcbebdbbbebbbhbbbbddfebddccccbdbebcbbcgbebdcjcojeemfcfjcchdeehjbgcbcbbfbdebbkhdfbecbccbbbsieddbdbbbiilbbdcfdbbcfchccebehceebgbjdffcceckbbdcbcbddfccccbdeccjbbcdbebgcdnbcocccbgfbdchifbebffcecbgcbceddddcfecddfhcegkbdedcddbecbfbcfgcecbkcdibcbcdcgcffcbccehcbjidcbdfgbdbdebbfdcemebbcbbbcfcbedcbgebbdboccccbeeechbfbcdifbbgcedbdjedbcdbdgbfgbcbccdbdbdbfbciebdfcdgdbbcbcbkbddgbicbmcdfcebbbbfcdhcgeibdccbdefdbcbbjgbibbibggdbccccckdfbbbbedebdbeddblkbbgbbgnscbbdgcbfmbbjccbbeccbfecefbbdhdcebbedbcbcbbbbbbicfegpefebebdbfbbbdbeibcecfecccenbccdgdcbhbfclbcbdhecedccdlcccdhbbcgblboccebdebhebfhbccbfbbfebbcgdfldbfbbdcfdcdbbedcbebcccecccbdbcfbdchbclbccbbbbhchcbbecbgcbbdcfkcedcbfbdebfibddbccbbhcbhjgfdegdhfccbdcbdccfbddpcigcfbcbbcedgebdbecbcehcichccdcbeefbbbebebbbcbfcbbdbbbiebdbgbdcbfcbdfgbbbjcbcdfebdbecbbbbjbgihdbbbcbdedocbdcccdbddcccdcfeeecdccbfbfbdcgbbjbffbbcbdkdgedccbbddceehbdbhbdgmkdebnebembbbebhdecbjfibhebfbddcfbdgdbbbmbfebdcjbbebddbbdcdbcefbbdbbbbfdebcbedcbbcbcbbcciqdgfkddcdhqcgeecbdfbfcbcdbdbdfllcbcccdccffegdcieecfbbebcccbdededckjcbdbccbbbbcbccmbgcbebbecbdjcbdbcbddddccddbcbbdhdcebbbcbcbdcdfbjhdbcecccdcbccjcgkbbcedcbbccbhbhddbdebcbbcffibfcecgfbfbbfddbbcckebbefchjcebbbcgdbibdeebccgfchbighfcgdblbddgcfbjghbdocebcecbfbkcfcbcebebcdedcbdbbicbgbcbbdcdgddfcccbchdbildnebbkcbcechdbkfbeeegbbbbcbcccbgkebjceccbcbbecbhdccbhgcfhidggfgffcbijbdbbebbdbbbbjecbbggedeccbcfbdbbbbcgbbeefbecbbgdccdfcehcbhfjcdfbcbcecbdhebbccfgddjccdefbfgbgccjbcghfcjecbcbdbkddbbcfdbeokcdbdcbbeglbbbckfemdbgdbbcbdccdecblbibccdeccdcbbbbdbfbbvbecjbfcbbnedebibgbfcecccdcebebbcgbbcekbmbifccbbbbdgbcgfbeccbhbffbdcjdccmbgcedccxceegmbbhgcbebhmddecdbfbifcddcdbcccbebjdcencdbbfebibbcdbbjgbbedbdediddbbcedicddbecbbebdcgcbbdddccbhccdhdfebhbcfibbbdbcbefcccbbkbedmcbicecqdchbcbbcdebcbcllmbkbfdbcbbdddhbcdmebdebcccedddeefbeeicdicbcbdbbbecbodcccddedcbecdhdbdebifebcdgfddhbfgbdbejhbddedbgfbddbcbcbdccbbdgbbbebbbdhcccdbhhbhjfbdcccgbcbdcgcebgfdcffsjcccbbbldccfccbdbccdmddcgbccbdfggdjdfcghbdeddhdebihbbbbkhbfcbcddbcdbddbfjegbebddfdefbbbbcldbcjbfhcedbfcclggefcjgcfbbdhfnibbbcbfctcfcbobcbfeceqcfbbcfiebbccechgdcfebcbdebgbdebcdbebgbcfcbgdbbjilgmhbcbbdfbcdcgbbdbceldfbbdcbccbcbbceedebdgcbeicjgdebcddbcekebcdbbefbcjdcfdccedbbbcwdmfcbgbcbbchddcbbbbcbfgidbbbbdbkcgjgfdccbbiennfbcdbbdebdibebccggdbbgbdedbecdecfdhfhdbbbegdbcljbdbficbbbfbccchbbcceoddcdbgdcegpbbbbbccfcdbebecffjcbbbfbcbfbcdbedccbgeibkdbcbecdbgjbbchfefecbbbbcbcfbedbmhcbjfhghfiddiddbddeieccbbbibclfcjbhhcdbbcfchgbbdccibbcbbcbgeedjcchdcfibeccecdbcfdbdebbbbbcejhbfcmddedcbccgcbcgfcbhfgecbdjcbcgicdebcccecbbfbffcfbdbgbbbdcbbbbjebfcbbbgbbbgbdgdddbbbdcdbbigbfebfcbdjbclbbeibceddbdegbbiebmecckddbbddbcgbkjhcbeibgfbdcgccccdbdebbbbjgdffbgbddbidebcbddcbflcecfbbecbbedcchfegedbbdbbbbbbbhcdbdddbccbibdhofgccchfbbddcbbbddcddhcbhdbhbgccbfcbbebbbdbccccchbcbeedddddbecbccefgjcedchgbcccjccbcibcbccgbbbbbccbbbfebkcccgdcbbbbbgbdkdbfbbbebdbjhecdebcbbbdecbegebebefcbdhedbcdbbdgebefdgdbcbchbcbbbbdcdbhdcgccbefbhcbbfgdcfecbbbbcmcbcbbbfbbcbbcdbbfdbhhbbcbdcbbdehbbgbfbfbdcgcdcdbehobdcjfbdgdbbbecmeibbmbccbbcbbhbkbdfbbbbcfdbgeefgddcebbdbbbccbgcdbbbgdedebcfdbbdcigbfcbggcfbhccbcbcbbfebbcdbdccgbgbghdccfmdcjghgeebcdebdibfbbeifecccdckbdbmccbedcbdccdbbkbbbcbgibheekbcgbbbhbgdjfckgeddcgfegdgcbbgdcgjhdbccbdbddbgddghcdfhdbbcbjcdccecpbbeecbgdgebbcdbfdeecedcbkjedfdcfeccbbeceebhebieiedcbedbddcfdebcdbcmddbcjefcgcfcibcbebcgbdeegdcbbbedqflejcbdbecebbbddgcchegibdfgecgccibdfbidccbccfdcdbghhbbdcdibcdhefbbgcibdgdbbedbccdgddbcdbdbeebibebcbbkcfddbcebcghfdcbcgdbbbebbccekdbbdeccbcdccfckfcceccqjcfhhgcedccebbbcbbffifhbiccdbdgjfdbgfdedeeeccgccccbgdiedbcbbhdcbebcddbdbldbcbccgbbcdcdibdcfbbbbcebjbbedbcecefccbddbcciikccbcffdjfdeedbcbbddbdebbbdcdibbdicbdefhcbbbdbjbbefmccbegcdbkdfchciebicbcbccecbbcedddbccdeeedefcbjdcbhdbedecbcjfibdedbcdcebcbcddbbcgebcdcdhbddcmebjcbbebebcbceeebbbbcbbbbfebfcfbhbhbcbdbbcjefdcdbgicuccbdgejceccddbfdbcdcbcddebibccccfecbbcbefbdghhdbcdbfdiebbcdccebbegbbbfobebdebfccbdbbcbdchcccchddcgbbcbbldbbdefbbbbbcdebccsccgcedbbbbcbdcbcfbhdcbecdccbdedcbddbbbbbebbbcbbbgcebfbbccbnecebcccebebddbdefbbccfbbbbbbdhfccbddefbgjbeccefhmcccbfebeecbbddbgbcccebcbcjchcgobbcfbbddkifbchdbghbbbfsccbccdgbchbcdddebbccecceddfcbfebdhkpgccbdbbebbbebebhhebddfbccbebcbfefckcbcbcccddbjdbedbbbfejdegccbdbfdbbeldchedggdgejcfbbcdefceedhccheccbhfcdbbjidcbcebbchcbccebbfbfdcddccbdbbdcbkdgdbccbddcdjbbcbdfcbcchbcddcbbbbbhbbcdfbcgbceebbedffccbecbdjdcbkjbbegbeddcbbcefeeehkfbjcbcbcbfeigfbecbebbgedhdhgcfbgcdjhggbbefcbcibfgcibcbccecmgdbcdddicdbbbgjebhcbedbedbebegcbcbedcgibhefbebcbgbbbcebidgbcfccbddddbbebehcbedgbbbecfdbccbfkdhcbfcbicjcbcfhcbbebbcicjcddebbfkjcjjbbdbcjdcfbbcecddeefeecbbbinhbeddccbefbbcbidicdcczdlcbfcddfbcbfbcfkcbccedbdbfdbbgbbjbbebgbccceebjbdfdbddfebecbbbcjbjbccdcdbbeddhcbmcfcbfbkbgdbfbbbcbbegkbgcbfdgbbcbcejddddefcbebdcfbgfbedbfbffcbccdbcjcbebcdbbbbdcdfjbfdebdhedfcecdgcdccccmbhcccekbfhcdfhgbbfccbcbdfjbddjbbbffciifebeccfgbbdbbbgccfebcbdbbbdicdbdbheibdeegbidejcdecidbhgbmdbhbbkdedbddibdbebebdjddbgbddjbbdebfnecfeefddeediccdjdbbbbblbbbbbcbccbcibbhbcfcdcbdglgdhjenbcdcdcffbiddhbcbghjbcbbccebchecfcdbbdfdbfcebeccecbbbcdbcdbbddpbicbcledebdcbbbbbgddehbgbbbhbbbebceicdbecchbbcbfbfbdccebegfcbbbdbedibccbdkefhbecdbebibhcgbbccdebhejheedfbecghdcbibdegcodcccckfccbbbgdbbeccdbebbrddbdjcbcdebggbdgdccdbebbfbbdefccgdibdbbbcdhcgbbffhdccdfbcddcbecdkbbmcdcbccbbbhccdbeggbcjfdkfebccqjbdcbbdddfbcdcbbbbedbjifcfbfcbldcfcnekdccbbidicdghbbbclefbbhdkddejbeiefbdbbdcbdedfbfebbgjbbbbebibffgcecbcbgheddcebibcbeceffdfbccbfidbgbffebcccbfeebcibbbcedcbbehddbebcddeegbjfjchgdbcbpdfbcbbdcgcbcdeqbbebbccdfbbedggeccbbgbjdceciggbccyhcgfdegcebbbcebhcdlegbcbcmccbfhbdfclefbblbcchgcccbbddcbdbebdcdbbkdhbbcbdedbgdbbbbbcfeebdbdhbjibbcdebvfdkcebehiddbbbdcbnbdffffmbdcibecdbfeddhbijbdhbebbcecbcecgdbbgdbdghfbcbfcbedbbbbcdicdfkcdbhddgcdbcbdbbcbbfcbcgcigbdfbcbbcjcmiehbfbdgncchdbfgbdcbebbbdocmicjchcesdfcdbcddhdbbgdcgcccddddbmfecghdfebebbebcbbbdjiebedddccccfdfbcdcbfjdebdbcbcbfnncdcbbbicbgldhdcbbebbdcbcbdbdeediccbdddbcgdbceifgccbeccbhcbcbbbfddhbcdbcbebdecbdbbecicigddcfieccefbnccbdbecebbebeegddbehcibdbbbbbecehccfcbhhmidhdfcdcdckichbbhcdbbfbgbccbegcdibkocbcdceefccdcbbcbedgcbchecgcgbbbdeebeebbbhniejdelffbecfdbgbbbfbgbbhdcbdubcgbdhbbbbcbghghcbibbbebebegimcgbbbccdbccgfbdngibcjffcidbffpfcgdfcnnedecbcbcedidccfjgdddccceedgkbeeddegdbbcdmcecidbccbkebbgebbbbddbbfcbbcdbcdjjcbdeebmccccbecbfdebcccbbbbcbbbcdcfcbgbbeefecdbbbbbjfdhbbebcdfddcbccejbibhbedbeibcbdbhceddcbccecbedeebbdejcebdebhdbeggngqeebbbcebgicdgcbbefbffdcdcgdbbbceccccfffgbfbdcdbbcbkchedfbjbfcidcjbbbbcifddmbcbjjibrdebcbbbdechdbdcbfdoddbcbbbcdxehcpcmbhbjcbcedjcbbdbeebckdcebfdbffbbgcbebbfdibbebccebdebbbdbbbbdbcdflebcccgqbhdhdbeeeiedcdfcdbbcbeeccbnbedfchecdbbdbfgcfcbjgbgbcbkcbbbbcccbbdcbbbbbecdcebchcdbbccbdcebbdejbhebhcfbefcbedccbcldbdhbddjbbfidbdbfbdbbccchhbccedbiincbhcccbicicefcgecehbbcbdecebddcdcbbbdcbcbdbcdbhcdebdebgcbdbddffcbebgcbcbbrbeccecbcddgcbceccfjbedcdchdfcbbibgbccdddedkdgecbccccbdbfbkbebehghbbbfbbbcbgbccbedfccfcebrbcbcechhccdhbcdebebdbdcdcbdbdcbebeccfcfddcbdbfddhidcebbcbebcfcccciblebddbchdblbfbhgeefdcbbscfcdcedbcdbciehbbdbcbdcdbbedcebcbbdfbdcchgechecebbdddccbbgccdbbbbbbbkjegcdfdfbkcfbdcdfbcfhdhbbdhecibbfcbdchffdbbcfdbbcdbclcddbbcbebcdfedbbdddeebdebbbkdbfbfccfidkcggffcdchfecbcdcbbececddcfbbikeelebdhededbdfbdcbbbbhkbebebdlcccbreffbbbbgcbcbedcbbcdbgcbccjgbebbgmbdbbkcbhceifccbodidcbbbbbedbebcbfbbcbdfdmbdjcbcdegbbcbbecdbdfbdcddbbecbkecbdddcfbbbcbcbecbebbbbbdfddcdebcbcbgbdejfbeichcigceebcekchebcddcjbdbbdfgbjcbgdfccedjbgcgbeeccdbldbcybbdpdbechdhfdcbbbecedcbdfebhldcdcebbfbfhbebbbdcfccdkcbbcfcgchdfgbeedbbjbifdefbdbbcbgbejckebdhgcibceflgfbcbbebbbijddcgdjbbeodccddbdegibdccgedeeflfgccdbddibhmbcbbbebcdicjfdgdhcdcfcbccbcbfdehfdbdbcbgcfcbbcdbbbdcijcdbdejccccbccebbfobbcbbkbbibcfedbcbefbebbbcbdcgebcddfdbbegbeccbfcbtegdbebbbdcecfbfeecedccfbfcfdhbcbehccbbbdjlbbebcdccbdbckcfbbbdcdcdgdfbcbedcchfednbjcbfbbienebbbfbcbbcccdbdddbbecfcdcdbbcbchcccbedfblfddhbccbjchdccjecbebegegbdeicecbbebffddhbbbcdqefdcbckbbdbbcbdcbebkcdfcbeccbcfbbgcnbddebfddffbebfciedccgbffcdebbghdcbcbcicbbidecbcccbbcccgbcbhgdbnbcjbcbefcbhicfffgblffcgbidbiecgbdcdbjbdbbddbqdbrcccbdhocbbchcgbcbdddcbccccdgbddfdbbcbkceebbfefdbccbedbkddbjcbcccidbebefcdbgbgbcidcscfdcdiddcgfcgccddicidcfbcbdefceieddcbcccbffbebbejbcfdfcdcbblddccggcedfbbccbbbbbbdgbgdlfekbghcfcbdbbdqcbcgcbbffdbdfcdhjccebkmbcehccbccbbcccidcbbbcbidgbcbbdedcdbbjcekchccbbfbgffcbjecfccdbbcecbgchebbddddcbccqfdbdcbddjbbbbdegdcdcddcbeiccebgcbebcncebcedidbbcfcidebhccbdbinbcbebccbdbbibfcflddcdbbdebbfcecfbcegbcbbcgdbededcccdbbceceeedcbcekfbcccbfceffmdeejbbdbbccbdcfbdficbdbfbjbcbcdbnkdbjcbeecbbiciccdbidfdgfdbbdjfffddebcekcfbcbfbbebccdjbbfeheebbmdbcibbjbecdcbeddjcbedemcbbccdblccbcebbcbiibcfbcbcebbdfbbcbdgdbfcdfgdbecfeccdccbdbehbgebdgbfbfccebeccebebcebefbbcebdccbcedcdbccecddgccebbfcccbbbdefbbdbbebjdfcbbfebdbecgebdeebgccbdbbcbgegcebchbbbblbgdcibcbcelgcccekdeceedbjfbdbhccjedjdecfhbddbhgdbhccebccffbbgdbcbbmkgbgbdcbcbdgffdccbhebbbedecbebdedegkebciddbhdcbbddijbjgdcbbbhcbcfchdbccbdedcbcbkehcbgbddddbgibdhblbfdcbdbcbbgceedbdecpdcnbdbdbecdbdcbchdcccbdbbbbbccdhffbdbbffccbbfcfdcbbddbbcebcdehcdbdgbbbfdgbddbdbbfbbbccceececcgbgbbcbbecfcdchceheibdhbcedlbbchdcbccbcbdebfncbbccbbgbbecbjgcfcibbebedghcbbbiecdbdfcbbbccbdbbbbbcbdbjcbdbbjhddbffdfbhbebbeedbceebfcfddbrbcibcbebhcdedbcbfdgcebdbfhfdbgecefeeedffidiggddckcfbbcfdfeecbfdbbfdciflhdekdbhdbkgfcdbffbcghbbbddgcbtrbbdccnbbcdehdfbeggkdbbcbcebcbjbceecbebddbebbcbcbbbgbcgbbfbccdbdbddbhcbebbbibddgddbcecbbfbdwdcbbccbbibcebcbhdkgbbmeccedcbbcefbfcfbcccbdfecdcefjbeebbcbheccebcbbkcgbdbdbhegbjcdbbcbedceddbbbbedchdefbddjcbccecbccdbdbbbbbdcfebdembbbdgcmcecbicmbbdbcfofpbbbbpibbbecedcccdceddhejddbbbccebdfjbfcckcbecdbfbdllbebefchhbbbhdekhdcccbbfbdbdbcghcbgghfejeccggcddjdcdcbdcgedibdbcmfbbfmcdidcbfbcegcfbddccdbcfbebdcdgdccbiegcbdgpccjbdbdedccbbcbdfeikelccfcjdbbbbbedhcekdebbdbcbcjgjbcfbbcfcddboebccdbbbdhhbdhcbbbecbfcbfdcfbcdbddbnddbcbciccdbjficnbfcebefbdbbbgbbhbcbdddcggddbejekecheeedcgbcebcdcbhcbebbedebgebbfcgcbdbbfibbhbebcbbfbcecbbbdbelbccibdccbfdfcmeccbfdddfdcddbdlbgebgcdddbfgdbedbefcbcgbddgcbcbcfdbefgbcdcbgbfgcdbbnbbfddeccccfffebcbeefcifbdbdbjbcchcbdbddbchllbbcbhdicbdbebbfbdcdbcbbjbbdbddebcbfdbebbdjbfccbbbcedchbccbdbhbcbbbhebbgbbcdebghbddbmfcgebfbcbchbcfbdfbeecbdgobbdgbcbcfebdbffbdbdbbebghbbkfnbbcbjbcfeccgbgfccmghdgbehbcdfbcecjbfdedbmhccdebbecggdcibbfeddbjcdeefbdbdcbfhldceecgldfbbcfbbcceibfdcbebcgmbmebcebeddbbefcddcebbecgcbbehllbebdbbdgbbbqebcchbgddccgbddbcbbeddbcbdhfgbcbebfbgdbdcgdbbebbcfdfgbfbfgdcibdbffbbdbocccbbcbbjdckbebcbffbribdfbndbcpcdchdccbbbbgcbcbdccgcccbibcdfcfjcdcgdidbcbgebiecbfbicdicfddebdfhdcegccbckbccldbgescceedhbcbfcbbcdcbdfbhcbjdbbdgecbcedbbcidccffbhgbcbgdbcbdbcbdckbceccdbdcbbhgbgccbcchgdfbdcdfchbcifgdcbfebdbcifpcdbhbbedbcebdbbfcbefbgbbefcdggeedgccjbbbbcgbbdcbbbbbcfbedebcdbbebecbgbedfcccjidcbbhbccbfbfeddcgbfbbiedcgdfedbbbedddecchbkfgbebbcdecedbcdbbccdfwdgcbbebhbcdbdbbdcbecdcblbbbgbefbcebbbcbcdffdibccbegikbbcbdgbbmihbdbcfgfbbfnbedbdcbedkihbbbbjebdccdgbgilbcbibcbgbhdbbbbhbbcdbfcddbbcdfibebfdgbdcclbbfcbccbfbbdccbcfhcefqdbefecbbfhcbciebfdbldbeembmddbbebbbbcfeddgdfbeefciidcdbffcbgbbdhfbhccebcbheddfcgejhbfbbbdeilbbhfbecjieibbbdbfbbcbddbbdbebdgbebeccdcccfdcbclcihbbfcbcbccdldbbckbfbcfbbbcbgjbbdghcbnbicbdbbegdgibffbbifgdedbgbbccgbchddbgdfgiigebbecdbfhbhcdbbgjdbgdhbcbbdbcddbddfcbccfgbdccbcbcdbecefedbfdbbcbbbbbbcebrfcdceegbbihbbdcccgidpbbcegbcdfidcebehgdfecdcgbbcccbcdbdbbbbedbbecdbdeehefbbcfbbcjbceceecgcbdfbbddcbcbgfcbcedgdbbdbddcbgdjdbebjegbhdbbbdfbddbebcbbeddfbbfdbdbebbbddbedcebbbbcdeckcgbccbbcgcbciecbeecddbgbbefecbcdbbfhbcbbdbdddghgimbchcngcebcfdbhbcgbbbcbccdcbcheelcbedfchgbeddcdbcbcbgcchgdfbccbbeebbccfbbddbbldbbcbbbfddbbdcebeheecebcehbbbfcdcdcbbbbbbbccdcgbcgdbbbdcfcbbdijbbedbbicdbbbecbbccccgbdbffeedgeefbbfcblbbeebcbjbebkfbefbebdcbfcbbcbegbddbldcgfdcddgcdbdbedcfbhddgecdbgdmdddbcbbfcbfdgbbcfcbhhifedhcedgbdbbfblbebdcdbcebdbfbcbifdbdcfbceebhcdbdgbecdicifblfbfbnbcebdccjcdbecbccgbcccgefbebbdbujcfbmjbfbebcedfbbcbbdgbbkcbbhdfbgcebcdeeelfgclbdbfnfdcebdccgefjccebcecblcfbehbbfgfdfdbdebhebbgdefecddkchcccecmcbbcdbcdbdieegccebicchbbbcjbekblfdkecbbcfgbhdbgqechfhddibbcbbbhhbdjcchcbcdedhecideebbibbeidgddbcncfcgdecjbbcibbbbbfbdkbkidbjbbcfgbfcjefdhdcbcfeefbeecbebibhccebcebbdjdcdbdkkcggcddhfcbmecbcbebiecjcdbbbgbgbfccceebbdebdcbbkdcdicgbfiecbgcfbcdbjgcbdchhdggcebcbcdbjecefibdbcbedcdbbbbddecdgdbcgbdbcccbebbfechecbfbcbbcbggbhbbjfecbbfbdghbcbbfgbcbebdgdbghbbcbbbchkkbjefebbdbbccbccbccbddfdbdbfddbbcdfddbcddbvbbcdbcbbcbdcifebbbdbeciebgidbbddicbefgbddbbdicbdbbfdebbccbgcecbffcccbcdccfcfgebdofobccebdbeebdjcbcececcdecbfdetbbdcclbdgbdcbdmbksbbgbbdfcgbeffmfngbbehdjbbdnfcbebbcjbhdbibccbbbdhbedbefbbdbdbjecbbbfceedbghbecdhdgegbedgibcbcdcjccbbjccgeccbdbcgiecbbbhbdemcbbdcbcceccccbocbbdcbcgcdbbcbebbccfebehfcbbbffbbbbqccbeebcjbcebbeodccbbbcbdcbcehcdcbbecicbcdbfgcbchecekibbecqdbedbfcefcdcbhmfdfbccbfbcccecdcedcfccbdbbfdccfegcgbcjfjbdhcffccfcccfdcdfbbcebbdbbblbcenhbcdeeldbbbfdfddbbdbdhfcbdgbbdijbbdeeedbbdlbggcdbcdddgcbfbicffbccbccdbcebgbbbehcbcmbbbdbbcfkcbebgfbbdbccdcbcdedcedcgibcdbbcbgdbcecdbbchkkebcghfcgdbdccbccgbbdcgebbjdcccebddebhbgbefbbdbbdcbbbeibbkgbfeeebejhlbgfcbdsebbbdcbbkfcbdbceccbhieedbjecbkcbbbddpbbccbglbhcbcbcdfidekccdgdfgdcdchbcdgbbfcjdedcfbcebddhbhcehcecbefgebbbdcfccbecbccbcbbdbffcbccbbgbdbbbcfbgbbddbdigbibdbfbcmfbebdcddepbhbbjcbhbbdhndbbdfecbfbbbcbcdgcjfbhblebdbbbcfbifdeedbbdocbeececbdcbcdgbbffccbbbebbdgedccbbdbgdhfheedcbcbhcfcdcdfhbclhecbbebcbcbgbfdcccfdcfkjbmcbhgeececbegfdfccfegfbbkddcebdebbrbbbbgdkhbbehdbfeehbgfbeecdebebebbbbgbcdhcdceededbdfcbbbcdcbcdbbebbedcgbcebbiecdcbkdbecicccbdccbdcbflcbbecffbebbcbebbebcbidccccbfecdcbbcbeedbegbcbeebhccccgcdmbhedccgceedccebgfcddeifeecbehdrcbbeeffcccecbehcbfdbbbcfcdbdebebdbdjcbcbbcjcdcccdgfidddegeidbceecbdbchhckiebbzgcfbbebfgbdddbebbbdehbbdchebmcccchbfdcfhbcbcefjibbgbcjcdbbcebcbcecbbbbebgebgbedbbdgbbbcebecscmgcdbebdgbbcbblebhccdibbfbbdebbgbdbfcicdddbbjfibdbfbdcddbbgbcccjbbgbbbehbbbecebbddbbdbcbbdbcbmhcccebefcbhjefdbhfgefbbcdjcbbcjdbbbbfckidcbccbbcbcbcddjecdegcbbbcgbebfbebbgefbcbfbdjhignccchcbdgdbbdbiceebcigdjebdcdgdcedcbgbfbefdddiebfbebcccgbfcddgbdcbeibbbccbedbcddcbdhbfbbhbcgbbchbecfddifbkbcgeddcbhcfegbcnbcdbccbfhfibgicbegdbbediedbcdcfcdbbccdcedkbbebdehjfbdbbebdhebccdcfceepcgdbbbcgfcbmiebbxbbbeccbbdcccccbvedeeceemccbecfebfcbcbmhejebfdeddhhbfibcbbhbbhbbebbnbbbidhmfcfffbcecjdbdbdfceedbbedfcbbdcbbfgicfdcbcbgdfbdfcccdfgceccejcbedbbocdddccchbblbedfcccekbeibkpfbecbedbeedebcbbbbcebbldbkbbbebbhdcbghebddgbbebbhdkwdbedjbedbbededcbffcdddbcbcdcbddbcefbeledijecdjdbeicbgdebecbcbhdddgbcbccechbecebcfdmccccdhbbhcfecbccedecbgddcdcecbdcpcdebbcdddkdddcbccecjcbhbbbbfjeddcbbddcbfcdbccdbccfiedfjdsmhcbdcidicdjhcdbhllebccffbifdbcbbjbjbfjidfdgcbebbgecchfebhbbdbcddbedccgbhddmedcfbbdefebbecjbbkddibcmgedbbdecbggcibdbbleecgdebeebbbbcdchcdfbicccebbcdkcfebdbbbdcmdbbiiceebbhfibbdebedbbbfddbbedjhbfefbeedbcheedgbfbebcfcecfcbbbdbefceeeccdbbbcbjddgbcindffccbidfhbdcbbhdcjnjhehdbbbcfbedfbcbbidbbbbjbccdececcnkcrddihccfdcdicccdbbdfbgkdcbiecgdikcsgdmnbcbdcbceejbbcedbbfdfbdnbdbbedbfcfscdbffebbcfdilbecbiodfcbbfcfdbbehdbhcdbccfgbbjcfbgcccijdccbicbcDebdidgfdclebbdbhbfcdcebbmdbhihbbdbbfeldddeebbbgedebcbbehebgqbfdbgdbdecgbbbbdhcfdbgfdbbdbchdgcqgcbccbdbehbgegbdebcbbdbfcehdedhbbebccbcbbbcebbdbcbhbbbffccbddbbceedcdcbbbbcbccdbcgbbjecfbfbbiddcdcdbddebbcdbdemddmerbcdbbhcccdgddbcebkcdbbgcfbecfbcebdbchgbedbecfdldbcbffbcdbbdbeeddcbobbcfebebbbdfbceccdbbqfecpbcbcfbccbcfbbdddckdfcdfidcccbddhemdccigfcbcbjbbbcbeceibcblbdbjgccbbbobhebbbcbbddgcbegeccbjdgebbbbbdjbibehcedbbgfgejedbhbsdfbdbmccdbdfgedbfbebbcecbbjbfcjicehcbchhcjdedecbhhcibeccbmcbfdbdgngbccdcbbcfdccbchblccffbffcdjbdbdbiccddbcbdbcdcdbjbbcffbbcbccbbbbbbcckdgefbehbebhbbdhccefckdbidmfbfbieewbbbhbbbfcdehccbdbcceebbhddfebccbcdkcjbcdbdbcbcbbdfbebcdeddbhccgcbejdcijebbdbbccbdeediciceccdbgdbhcbncebbdebbghbebbbbegebbcdcddbccddddbfdccedbbhpcbddbgbgbcbbbbdebddhfcegfcbbfeddchbcfdccbcjcdjbbibdbceefbebbhdfjchbkfibebbcbbbbcigbcigebkdebbdbbdcfgbihidbnfhdcbfdbcddgnfecchffccbbbbhedccibdbkecbeikbbclbbddcdhfbceeicmcffbcedfbdcfbcfbcbjbfdddgbgebcdfbecbjfchfchkccjidcbddcefbbddecbbdiccdcgbbeldbhbecbbecoideeccdoecccccdgccdddbebefbedbdgedfdbdfbdehbgfhbfgedbcfcbblbccchehdbgkbgcckfbdibbbbchfbcgebbfbcjbcdbfebchbcbdbbfdfbbbhcceccbbcbffecbdbcbbjbbfdbnbbjcibhecddbeddcledfcbmdfbbbcebeodgideccdbcdceldcbcbkdbebdbbbdbedfcehcghicdhecbcckbbdbcgcbbcbbbcccbbfdcmccfejfkocccfembdiddcjbmcbifbcbgcjbhcbbcxdbknbbcfbcdkddfedbkbbcecgcecefiebcceccdbbdfbdgececkcccbdjecdcrdgfdedccgbibbbgcbccbbdedbihdbcbdcbfeedcdecbekdcjddhbegbdcbgedddbbheibbbbbecjbfedbbffibddeedbjdfdbbccdcbbbdcbgbbdbwbbbfeffeibccgfbchfhbddcdmcbcbdgbfdcbdddefbdcbebbgbbccdbddbbdbbbfddbdhbbdbfdgccdkebbegcdgffbfbbbbcdbbecdbedhcbbdbbbgdfecccdilccbfkfiefbccgbjcbbdgebbcccdkbfbdflgecfcjbjcbdejfbdcnecgdbbekkkbiibmbcbbbdhcbgbccdbchbbbdbbjcgbebfbcdebeddodbhdfhcbcccccbbbbbedffbbegdidbfecddbbbdddbdbbcgcbbgbdcceccbdiefedcdbehdcefedcdbfcbcdcebdebbcddlcebbeibgcbbdbbfebbbbdbcbccebqcebdbexbgedhbbdebdbbeijbjihdbcceccbecfdbbcdcbdeefidbbecdcdebkbcbejbgejdbffbfbcbcbbdodbcbbbbdddbbfdcfdebbfeofbbddebieddbmbdbhbeddbfdfcfecbbbeeidihcckdefbbbcbfefbfbcbccdefeddefcklkbbbebbbcdbbembfbgbcbegibddbcgdbgcdiglbgdbfbcdcmecjbbdblbdbedclelbgbbfbeedmcgbbgcbbfcfccbfbehgbdfdgeccfebchccbbddbbbbffcdbbbdejcdbnbcdbfbfdbddecgdbchdebcbeebbfnbdfgcfgddedcccdbdlcchbhedddfidcehdbbbccbcbhbcccjcecgdfdbijefhgebbbbbgbbbbfdfdbbbbekdgmbbdcbfcbccbbceemebcccbbfbifbccbgfjcebficdfbdbehficcgchhdbdcvbdfbbbccbbdhcgbgdicbddgbfgejbedddcbccjcbcddmcgbffeddbcjbddcdbddjecdcbdbfbccdghebdebhcbccbdbcfgebbcbbbbbbecbgbffbgffbddbbiffbcebbcdbecbbbbbbbbdgdecccbiccfbbncecdceggdccbbdebbdbdkgdbfbbccddbdlbebdcefjccbbdeedcbcbgbbcdccbcbdcbbebcdecchgfgchbbbbcdcebbbccdcdmbdchcdbckpbdmlbbbcdfhncbdebblbbedcbcjdhibgcddcbbbebcgbcbeccbbkbibcfbfbbefbccdeccbbcbcgeheddcedbeddlbkfnidgbcbffdckbnbbddjccdbccbbbejedeciliclbbddbfdbbcbbbbjdbfddbbdhmcdpbbbbebjbcebccfbclccbedbdlcbddggbhfhbcfeebgcbbebfccbbidccbbedebccgbbgccbdicbdbhmmjmbkedjdcbgbbibbcbecbcbhmbibbhebledecbdhhgbhchhbfbihbbhifdgdlbflbdbcbdfofbkebbeedcdedbcbbcdebbbdcbeddiedccdfbbbbdbqbfbefbbccgjfedlcbbbbbbdebclfdbdmcccciygdedbccdcbldldbdgbkhebbddcbbcfgbbbjbeedbbbfckbebjbfcdhcgfhbdbgbgcbcjbjffffhebecckbebemckdbebebdfcbdbbdidbdbdcbbdbbbcdcgbcdhbcgccddcedddbbhebdcceeffclbcbjbcbbfgbfccehgebchfdbbdcecccebbcceccgbncfbbccccbidcdibecbdcbccbcfccfcccbcgcbbcbfbmedgdebechhbfbdbcdffdbdfebccbfibcvbbbhchbeccdedbeebccihbgebnccedcbbccckedcbbbbbcbbbfidbcbnddgbckecffbbcbecedebbbdcbcdfdbbccdccdfebbcddbdbbcbbbbcbqfebdkdbcikfecbbcdbebielbdfdchdcbccdcbbhbchfbcbcbbbbbeebcecchbfcbbfimddchdfcbbebcbccbdbecngiffdchbicjjhbkcpbcbbcbhbehbmdcibbbbgccdhbeobbcbbcbddccebffbbgbbebboecbeejggcbbbdcccfnfbedbcbcbbbcdcbbgdebccfbdbcbdcbchebdbebdbbbedbfbbecdmccdbecbcfcbcdbbcdfbcdbfcbfbbfhdbbbcdgfgccbnbhfibcdfcibbbbbccfgclbbeffghcfeecgcchpblbcgbhgbecfhqbccccgchebdcdblcebbedccddcbccbeccdcdcdddebldfbbiffffcdcbcedeccefihbcgbbcdcegbbchbbdbfbcccbbbdbbdddidbcbcdbhcdfgdfbfbbcccdbiccbbmbfbccbeifebbdbbedidbebdccddechbceebebddcecmcbbffdbbdccbdegcbdhldcddbbbfhecendbbfbcbdbdecfcddcbdkeedjbeichdcbccedjcgibhcheebbbbeeedcefcbebcbggbgmbeeckcbkcbbccbibfdbcfdcegfldifbbbcfebccbmbeflcebcgbbgdbbbdcffijiflibecjlbcbcbdbcccbbfbbdfbfcfdcjhdcbbhddfbmbcddtcgbbbcemecgcjgchbgcdbcibbcdebededbbcccbdbbbebbfnbcghbbbhebbcdcbjbdbebjddbcfdcbbfdfcfcbbbbbcbbegeeteeccbifbddgbbedbbiccbebcgcDcehbdcgdcbebbbbboecccdccbddbcbbebcbecdbcbcbbfcscbdcccbbbbcbhdbbbghgccbcebdbbgefdgdcbfdhbbefgbgceehcccdbciebgdbhbcbdchgeheidbbbcebbbbbbbfdebbhbbrcdfdddfcbbbbbfbegcembdfccbfcdbgdccbbccfbbbhdeccbdibceffgbcdbcelcfcbbgbgcgbbebddchfdcbecckeeegbgbdclcbbbglbbdfcchggflcbecbccdibceecbcbpceecfbnbfbbdcgbfbdmhdffbdebebcbcefbcbddbcdebhbbecddbbdcfbgebgbbbdbcdbcbbbbcdbbiecegekcggjbdbddddkbefedhbcbddcbcgbbijehdbdfbdckdddccjbbbfcedddbbecedccbbbdbhficefbfbefhbceecdefgchvidebbbccdbdfcbccefcgcbclibdhcccbehcecbdhbccejddhdfdbfbebbbbbccbdcdccodcebeeddgccebcjcebfebebcfdbdcckdedlbedbbbiebecjebhdbddchbhcbbbbbdibbbbhbeechccbbkpkhffcbcdbcdbgdbecbbekcdhgbbcbchdbbdblbfbcgbbfeccedbbbberddbfbdceecfccbeecbcdbccbhcbjbbdhlbdbbegbedcbcbebbcgbbbecdbegbcebbcbcdbhbbgcffobbgcbfidbehdgbcbfbffcdecfgbffhfcdedcbdbhcgeccccbbccfjfbjbddbbbdhccefdhhfedffcembbgcfnecfebbbblcdcjdebcbbcbbbbffiddccefdcefbbbgcoblfdbdjfgbbbcnebecbbbbbcbebecdddcebddbbgcibcccgcbbhffjciebcecbbbfnccfdbbcdbdebdbebcbbcdbbfehfffdbldbbbbechdfdeccgfhccedbdicbdccfbddjdbbcfdgbdibdbdiebcccbjbfedcbcdbfcddbdbeckbedecebbdbcdegbbbdcfecdbcbbccckfgbgbbjcdcfcibbdbbbegecdccdbbbfclbdecbbcfcbbcgccbddedbbbcfbbebcfcfdccbfbgbdcbbbcbkbcgcbebehbeefdbdbecbchbhbbbdbddhdcdebebibhgcgefbddbbcfdcbbcfcbcbbcbddfcchbhtefcbcdbfcdbcjhcfedcfjbefdhcceccbccbbdbbebbffdcdgbcbcbgifbbbcbccbdebcebgibccbebccbfcccjefedfbfbcdccbbcbdkdidbhffdbcdbdecdcbbeebbhefbdkbcbedcbddgcgfccdbbiybkedbdbedbiccbcbbceeeccddlgidbcdccbgbkbdccecgfccdfgbbiccdbbcefbbchebdcddbbbcecdcdcidcgbhbdfbbccbbdfbbcbgbbblbdcgbbcbmccbfccdedbbfbiccdehbcicbbcdbcbjheddbicddcjndchhceedbhbcgbicgdbhkqcbidhekgdcddhjcddfdbfebhcfbccbedddcbbebcfgbcbbccbccbbcbedcddcbmbbebbgbjffbcdcddbgccibcdbcbebbbcdbcbicebcdbcdkdbbckcfcedebdbccibjbccbbechbbebbbbdccggmdsbdefbhcbccbbdbbdbhfedbbbbedmcbcbbbccbbcdbgcbbcgceccbbcecbfhdcfecbbfeciebbdglgfhbcefbhbfcgdgbecbhkedcfbeheedcdbbgeeccebdbbgbbbbbmbbgecbbbecnddcebfegfgdbbeccebccdcbefgbfdcecccregbsbecbbcdbdcjcedbdbcccebdhbgjhdkcdgbbgebcbcbdmbichfdbcfcclggbccfgbbccbcebgcccckcdebdgfcjdbgefddbbeegbdhgbcckbddbdbgbbdlcgbkbbbebcvbdebhbbcdgeccibedbedddcbbbcddvbbmebejieccbdcfbbcbbedcdfgebjdeccbcebcjbkdfbckecbgxblbcceebchebdbdcbccidbhbehbdccgbdbjpbgbebmjdeebdegccdgbdbfeeogjcciddbdbhcbeebcffejicbbbbgiccbebbfbeceebgfbbbecehcfdbdeigbchbcbbjdcbcmblbcdbecegdbibdnbbbbhmdcdgcdcdeebffchiddbdbcfhgebccccfelhdibecncbcccdddheccchcdlbbbdbcebdebfcckeldgccdgcdcoeffhhjdhbibfbhbdcegdebbbbebbfdbehcccbcgbecbhbbddggbdbbbgebbbeegbbcbbbcbbebebdcseegcbdcbdblcbceebfbdccbgmhccbgccebkbdcdccggbccecmfbbddgdhcfcdcccjddcgbcffbgccfeccbbjcobnfghccderddckbbddecfigbcegeblecibdcjecfdbfbdbccbebinbdckdeedidhjbdebfdfgdcbcbbmfcbcbbebbccdbbbbefbjddcdcdbbfbdoedciebehedkdembbcbdecfbomcchbggdbbedhbccdcgebdcbbcggihbbbkhcdeehbbbeedffhgsbfkdbbecdkbhbeddbbegcdbdcddfebomcljhjecoiecjehbfggbhdbcdcbfeckeebcdcmbcfclcdebeblfdcebbfjcjbdcbedgcbcbbfcckcbdhbfbicbhcifgccdcedbmdbhbbccbdbebbdbbeedffbbbcdbchhfdccbgbebccbdbibehddhckemgdbbhfcbdjcbbbbdcibfhbdcbbceeedeccbgfbbbdbcccddhbbcbbdbdcccecdbbbcbfmejcgbcbbfbfhbbcbffchiebcdjbcgfcfdbfcccccilgbcheeibdfccgfhfbbddbfcebidgddgchbbebbcebddhgbbccdldbiddlrbbbchbbcdcddmbbcffbdddcdccbebfbbfcbfcfbebccccbecbcbcbcbchbcegbbbbifbhmgdjbidjkcbofdbcbcjbcdcbcccfhdefbegdejcbblbdeebbbdbgidgkceiemjfbbbchebdcdbbbbcdbcbccbdbfbfcebcdbbdbccbbbjmgcbehcdkchdhcbbbdcbcbcbfgddblbbbfbbeddcbeibfhdbbflndbcdbbcbcblicfgeqcbcdbeedfdbbceebhnbdcbbbceebdhbfcigdccicbbedgigfdbbbccedcchbebbbhcccgkgcbkgbgoddccbhgcfgcdeiebeqedbcbgeecdcdbcfbbcdddbcgdbdmdjbccecdbeecdhcbbeicbfccgdbbebddbbbbdbcdcehbbdbbcbbcjdceddbbbfgcbceejcbehedcbbedbfbibbgsdbehbcbcbecelbbbebchibdhhehdbbbdcbbcdcccbbijbchdfcfdcbcgdgcgddcbnhbebjdcibfggbebicbddceclcbcccbbecfebebbbbcbbfdcecdgccdbdcejcbbkcecdbdgedgbdeebchbdgbhbnefbbcedebebgfcbcgebcbbbebbcebbdfbecbbedbdccbcbfbbeccbccfcfecgbfdbdccbceddcbcbchcebddbcddbcefcdphbbgdbcbggedbfbfdbbbfgbbebdbcicbddbbcfgbjbbdcbbdbbcbcbddbcjbbbbdcrbibcjdfbbbdgbddbdefbebhfbbbicicibbcgiebdbbgddcbbeccichcbbbbejbdbejdfbdgddcddbbcddbbbeebgcdedbgbbbecbbbbjbcdcbcbhdebfefbfcbhbjccebdfgbecccfecfbsdcdkbbbcbbfdeeddbfdbcghkgfdbccpdddcbfcchfccddebdbbffcccccbfbbcbechccefhcbcffhgebecdbddgbdcbchmcfdbkgibececfccdbbbbbcibbfbbdnjebhbcdbdfhdbcebdeobbckmddlefkcdiffebbfcebecccgidcddblcbbgbcjcdebcdclcbcebcbcccebdbbbfcbeghdhecgbdcbccebbiddebbbddddjdcbbebgcihbfdcbbjbfccfcbgebebkcfebblcccbebcbdccbehccccbcgbedddbhjbcbcbchbjdgcdbdcbbdfbecdbfbdcgcfdeebccccbdicbebggcdbebcbfbfbbbcfgfegdfibdgbcpccgbbbfhccjcccfebdcebbbbbcdbdfbkeibbbecdcbbfbgfdcjbcbbbddbgbeecdeebbebcbbbbccgbbchcbdbbhdbddhbebcebhddjfbbcbnfxbeebccbbdebbhdcghebbdobbfbfcbbifebeecjbccbbdbdbleodbdbbchbffhcibbfgddbcbbkecjbccddbkbfbhgebcebcdeiicbgcdcgebfccegcbcblicbbbhgdkhicgdbdddccigcehdcddbbcbdccgbdggfbbcebcbjblbeebcbebbbbgicdcbedcbmbcdcdbfeddcbcbidbcbecbgebcdebbbdrbbbgegfbcngddkddbfbcccbbbbgbgkcdkgecfdcfchbbdhbbdddcfbfccbelkbchhbfcdjdjbcccdcifbbbdbdcbbbcbbgecbbbbfbcdobecbdldcbjcbcjidcfffbcbbccbdbbecbbgddddbgblbefhbcdcebcbcfbcccddbeccbefbbdeccefbbdbeedcidcdmcfccbdciebcgegonebcbbcbfbjccgjjhcbccbdjbhebbhidbccbbbbgbbegbbdcebdddcbbbeddnccebdbdbhcebbdbekbbcdclcidcedhcdceddgbcdgegbcblbkdkffhbfeefcbcebchcebfbbidjcbbdjcedlbdgcigcmbbccbcgdeedbcdbcfbbbdmdqjdbcjfcbdldbecbbhdbcbbbfebbhdbhibbbobcedcfcbcddgbdcgdbecfdbdbfbbfdgdbbmefbcebbbbjdcbcfbccbdhddbgeddccdldichbfbbdbhgebccbbibbbbcfheebcbbbddbbdccffcibbbdecebbcbbdcbcefegbebcbgcbleegbceedbfbbdmbbcbcdcdbdfbegccgccecbebefbedbddbbdpccccddfphddbeedffbdcgjoieebbfcibeebbeccbeddcdddfbefdbdedcjbbbdbdbcdcddhbchdfbcjfbbfccbdcbcbdihgebcbbcdcbbddcibcbcbgdfifbcbdbdjbbdcbbbghdbcbcijccbfbcddkcdbcchbbcbdcmbcdbbfjbdbcffegecdecccfdccdcbdhbcbdfcdbbbdekbbebjcfbbgcbcbbchgbccgfehbgmblbgdjciebiecchbbbfhbechccibbbbgfbbclccbkbcefbdqcbcedebdceceeebbcbhcgbbecbffcbdcbbcbmkbcbhbecececebbcbfbdebbdfdcdghcjfebbdbcjbbedecfcdbbcbcdfbhebebbeddfceefcfbbdcicbeedccecbcebrcicececebbcxkbbedbccleebccdbccdbdcggbeibcebcbedbebbfbeebccccfqhccbdcbfhiccdicbbjbhffbcdcbbbbedccecbececcbcqcfbfgceffgceedfcdbbcdbdbbbedbckhcdccbccdecfgbhibebeocbcibdbeccbjbcbdccbdhcbfcdcgcdbbccccicbcdbbfccbpciccbcbbcbfcibfdbcbbcfbebcbdcjebjdbecddbgjbbeebcbbbcgbdchcceebcdgbccbgfbdcbcheecdcddcbhhgbddcgbchecekfcbcegceddebcddebbegbcibfbcbbebbebbecfbcgebebbfbdcgcccddbilkbhbideedbfbdbddgbblcbdceccfbbedcedcfbbbcbcdbfbccbdceciiccbhbdfbfcecbccdgjbbcceedebddbbcebmddkffbebdkbdbbeccbcbfdnckbcccebbhdbbbbbmgbbcgfbgcbjgebdcheblbhqfdeebedimfccbfeeccbbbeqccbcbdcbfbbbbbeedfcicbfcbebbedbhbbebfcibddebchffbbbbbbbbcdebdedbvbbedbedgfdebcktbgdddfbbbbhhcdbbcdebecgcdcibfbchccfccbbhhccfffibcbbccbcekncdbbddbbddfebcdibbkbfddeedegbbbdbebddcfebbefccbhhqgbdgidbbcgebcdccccbcgbdidccefbfebcbbbccdgbmfbcnfbfgbeknibdbcbcdbbbcbbgdpgdddcgdbffdobfefebccdbhdbbibdibiejbddkdbdbcccdcbfhebblgbbbgbcedcchcbbddbbcbfbebcbcdebchghbnlbgehbdggdhdcdbbdkhbccjfcfdbdddccdhbdgbfbccdbcbjbksbcdcddebbcbeefbcbecedcchbbbecfdibddcbfccfddhhbebebbibogbcdgbbbheebdddbcbccbddbcbdebbbbbbdidbbegfbbdbgehdbdbeblhbkgkeghbbkfcbebbbbbbbbbdbdfcbdbcbebcbdgebcbcchcbbbccbdddbbcbbbibgdbccdbcbcbgfccdcijbbcecbbbfbeddgjggdbdgdkdbeecfcegbcbiecbccbcebndgcdefdflbccbhdcdbcbhbbddbdbccdbbbcbdficccjbjbbfdjebbegehddchcdcecddccglgbbbbobdbbcdjbchddbddidbeedicbfbcfeccgceffdbbecldhecbfchdggcfcbdebbkcdbbbbrdbdcgcbcbbihfgdfidbcddfbbbfechffdcffcjbfbichecbdbggeccdbbeedbcdcbbbcejecebfbbchchbbbbejhdccbdhcbeebbbebecbebccbcfcecicbbbbjedcfebdcbbccbbcbbfbbeccbcbegejideebbbggrccbbbcfcbclbcjcbbdncccdfbfcbiccjddbbbbbgecflccibcedbbbgcbdddeckbceibdbcccnicbfcdbbbbfdbcfcbdccdbddbdbchbbbkbbfbbecbefdfeeeecgdgebdbbgcedegbbebicficebcbfcdbbcbdebbccdbbmdcbcddfcceddfgcdbefcebcebbgehdbfebcbjeebcbcjbcgbbbdcddebbbbedlcdjebbcechkegfbhfccdbbpcgbbbbhbcefefgbbbbbddbdgdehefbjkbbbfebchfbbebedcidbebecdicdfdbddcbdbcccdbddfcebcfbbeichkkfcgbdcbbcbbbcbbcbbgghcqecbjiebccfcedbdebbdbeefcddfhbccbhdfdrbdfbcebbdhbfbbhgbbffmcbddfdcbedfbdebihdgcfcfbcecebocfgehbcbebbcfcbbhcbbbbcdcccgffjbfcbebfbcbbbbchfccbfbifcbkbfdbgdjfeebcnfnbebfbcdbfbhcccefebbfcbgcmdkdbfcjbfbfccbdnedeccccicgdccbcbdbebbcfdcclbbbbegkbccbbbcbehcdffreccdbbcbfbbbgbbdhchcbciidcfcbcbclccdbbdebobbbebbembdhdbbbddbjbececcbdedgddidebcbhcbfdddbbcbffcleddbccdebhckibgcbbjcejfechbchbibhcfbchbcfekgicebecgbbfibcebdbrjccddlhcbcggcbbhbbcbeccdbbgddcbbdlcfciecdcbbbfbfeebelifbefbcebbcecefbhebfbcbbdebeeoblcbebgfddgbedbbdbdbbdegfbcbcqcegbcegbegdeiecddhcecmcdbdfbdbfdjbffecbbegbcegbbebbccbcdbdbgejcdccbbcbbbdkbegbbcdebdbbdcddbbdbefbbbbcbbdeebdcfbbjgeebbdfpcfbfbbbchdckbcdddebfmcdhcdnbgifbgbbgcdgebcfbplhdenbcbddbccebcbeicbcehdhefbdbidccccbbeddfcdgbddhdchdeccbfmgbbbdeddficeeckbbkdhbcfcjbbccfdbdbbcddbccecdcbdfdebdhcbbddbfkcbffddbefbccdbmbbbbefebcefglfcbbggfedfbbbbjbieffcccbhcfddddfbebeedcdcbiccbbbeedcddbbbccbkredecbbcbbbehbbdhcibehbgcebdicecbpbcbiccegcbiijbcbcebbchbbbddbbbbkebccebdgheibdfcbfgbldcjkcccddbedcbbgecdbeocbbddbbbgebccccfebdbhdeghdibbicebcjbecbdbccbbbencdcdcifdbbckbbcdcielbgcbdlfggbecckodcbbbfdcdbcbbdcbfbgcbiccbgecbbebdbidjgbeddcddebcceihidebgcddcbecvcclfbfccmdpddogcdgbcbbldbdeffbecbmbjdjddfdgcccbedddcgedfcddbbmfbbcdddgcdcccgcebdbdcbbcbebdcbbdehcdbccbcbebbhfmddffcgbgdbbbecbfbbdbcbbdebgedbcjbdlebccclfbccbcibcfcicbfgckcfcfddbbgbccbebcfbegbbddibbecdididbebbccgdccddjcicfhbbbcbdbbebclcgbbficcgbbdfobdcfedcckbgcdbmbfbdbdecbbbfcbcbbchcbdkdgebccbeedbedbbbeehzdbccbbfbddbfebfhdcfcbhdglbdceccjbbebdcjeifhdedfhbibdbbdebbgfbbgdcgcisedbbbebccdbcdbbcbbcgcbfcflefdccdmebkbbbeidbdfcddbdebceqceebbefgcccegcbdbcbbchbbkccgbfchcbcbqfbbdedfbddbddffddgbibfbdfefchbdibebhefbbecdbcddcfgbcobdecbbgbjgdhbbcgkccfdbbgcbfbciccdiccfebbddbdfhgdbcbddccgbbcddcbdcebcbebbcdibgdcjicbbchdceehcebfddccccfbefdebchbcmcchicdboeecbdcbdeddgbebegbbbccbbccbbcjbdbfedjhdfbjgebfgbdbcdbbhbfcgddddcebdbedbbbcccegbficchcejibdceefkjbbcgdddbhbjebcdecbfcbbhdbcedhcefdfdbbegbgjfgfddbiedbchbebefjbfcccdhkddbbcebfdbeccgdmbbbbhcbdcbbhcecccgbceibbqbicbicbbcdfbbgdbbhedfbcbbbbfgdecbgbcfhblbgdddfdjicbgdkcbgfdbbcebegbcbbbcecfdbbgcgfcebhcbgccdbbbhbbfdbckfdccbbgbbbbbcbcecebbbbgbbbebfjbecdcdbkfbbhfcccfbdeicdliccbdfccbcccfeeedeebbcbjbgbgbbfhigbbbebdcbbddbfbcmbddbebjfcchcdfbfkedccbdbioccbbbeeccbfkceicecfdbbbcfdcebdcgdbdcbfdfibdbbddcbbgccjhhiddebelfnebbdcqccpfmfedeccbcbdcddegfdycbdbcfnbmcdbbcdcdcebbbbdcbkebebedbdbcededcccicbicdfebcbdhebbeededjcgbefbcebbdkbfebcbcecbgbfbbdbechceccfbbeccddefeecdcbbcbbbbcgebebbedfbddeeccggbdbcekdbbdhdfbbbblchcfbcdbhdodddcbebbbfjgdcbhcccbdbcbeclcefefbdbcccbebbdbbhhdhbebfbbbkcbbkcgbccbbfbbdhbebbcbdfibfbdwbcbefbbecfbjbdbfccbbbqdccmfbcedbhcdbcbhcccbnglcbbfdekbhkcbbccbeebbbbbdfdbedbddcbbbcclbfbbdecffkgcmdfcdbbfccdcdcccebdddbbdfbifbbdbffbfeibbcbedbebbbdebbecebbbbheicbckddbgfchbcbfebdcbbcdcbbebfccefecbbebcjeebbbgdedgeccicdcfdcbbbfbbecbceheedcbbcbdieeedbifcfeibifbbbdebibdcdcbfbccebchcjcbdkcbibdbbbbbbdedegfdbebhgedbbfdcbcfbbbdfbgbbbbbcbhebfdcdicbdebebcbbccbijbbbbcdckdgccbcbddbbccbeebbdbbffbegdfbfcbbebbcebbdbcdbbecbcbbnbbgebcbggidecbebgbffebfigedebehbgcgcecbbccdhbjbbcbdcfrclbihbdebeccfdccccckcdcdgecbfbkbgbbccfdcfbbbdnecfbhbccbebcceecgbcdidbgffdedebcdbdcbccbgdpgbebbebdcddehbccbcbecedcdbcbjegcbbhfbegbgebbclbbbcdcfdbecccgdbccdpedgchdebedcbecgbegbcgbhbfdbccbbdfbgcbcbcbbfbdidbdcdchbbbbebccdbbbbdfcdhdhcdcgodcccefcbcbccecbcfbebhdbchcbicbbgedefecbbcgbbebkbdbdmccdbfcdgchbdbbdfcgclbcdncdbcobbbebbcbddcbbdkbcdbfpglfcbbccbbcbdffbccbechfdeecccbgfbcdcjcjdfeddcmcfkbfhcegbcgbgihbbedccbbchdbbbcgbbdfmcpgbcdcbgcfccbcccbcbgechedbcledcedbfbfbjecedbbfebecccjibddbhkcdebebbdcbdjfgclfebckehbegbbcbckbgdcdfbgebbdbcebeehdbbbddbcbdbdccbdbkddebhbccbndcccbgbfecbbbebbmgfdbbddcfdcbjdbdjbcbefgbcbdibhgbddkbbbbbdjhhkeceboceccdibcfecdfdcdcbcbfbdbdcdbbbbhehbcccfbibdcbbccgbgcbcddebedcbdbbccbcccbfbgjccifbcbebbedbbecbfeebgbccbfcbecbbfhbecbgbedfcbbfdbpdfkecbccbcedbhdbblcbeeiccddciccdbbecdcebdebecdbbfhdefbgbdbdbfbbcdedbfdhbcciidbbbdbqibbecdebfbbiebcbccgbjbbdccbcbeebcebececbcbgcchdbbdcebcmcbgtbccdedcbbbecbdgdcbbdcbcbccbfjbcececgbcbbfdbgdbdebbcbcbbdfgdbhcfdfbfbckcfffbbcjkgdbiepeedfedebcbdbbbcdbdccbgfhbccbccbfbbbebbdcebceqfggbdecedccgdbbdbbcbbgdbegfebibbdcbbcdebcegdcbdldbhijhbbggegbchhcbdcbcbbeddcbdbicfkecbfcbbnbcbhjbbcbbehebcbbbbbdddggkdcjbcccdececdfgjgdflbbbedcbebcdfeeggbeeefbcbbbbdldddbbjfbbccccbdddbbdcbeebcbfbcibgfbeebebgbcdbcccbfdfcbbchcbfbcffheiggqbjcbhfbbdbbbcdicbccbdccmbbdbmebbhlmffbccdchicfcfcbbbbefbbbedbeebccbcbbjcebcedgbddgcdfccbdcpjfdhefbiegbnbdbeceekccdeccccbcddehbebcbhcgbdcebhdbbbbbbcccddedenlbbcgbccigbcbcbccdfbbchhbbcclfbhcgbdbdefbfnqdcdkebfbgecbbcdifbdbfdfbccbcebdfkectdbdcdfbccdbccbxddbcddfbfbbcdhgbkjccgecdedddecbfcbdffidcddbbdcbbcbbedcbcbefbbbcebdbbcbdbbbccbcbbbbdcfdcedceccbnccbbfclcbcgbdcdlbcdddddcbbbdbbhbdbficddgehkgcbbdbbfhbbfqbcdbdrcbbfgedcbfccfebdbfbgcfbgcchebcbcbcecddfceebebfbdcbdcembgbdcfbddbhcbccddececlbgkdobfedeccedebccbbdfgmdcbdhdbbbbfbdjgeichicdlbbbcbbbbbcgdbhccbbcecfcchchebfcbgbbbfdddccbibccddebccbcbfceccdbbbbbeejgecbjbbbdddcbficdlhbbdbbgbbbbcbbicdgebejbbbeedjbbgecfcbbdbdccgbdjbefecdfejibcccbjdjcdgdgcdiideeccifclchfecbcekbbcdffbeebdhbmeeefbcbjghccdbciecbbbcbeccbddbbbcnbdcbgbcbbecfcbebfdfbhnbbgbgceidgdebbhbbeddmfcfdpdebbdfbbjcbbjcefccdbgddccgbbbbcjdnbjbedflncbfbibdbgbcbcbdbbcbbgcdcdddcccfbebcbcbbdcdjbedbkbebbecbebjbfderddcdbdfdceebedhiegcicgbecbecbfgbbbcbdbdiccrjccgbbbcfbeedccbcbbebfebcbbibfckcbdbkefbgceccedcebhdibbdbbbbeeeeefbddbdjnbbjgcfbhdehfbfnddecddbhdebcifebbgbeccbdcbdbdcchbbfbbcdccbebdgdcjebbccdsecdecdcbbmcfbddccbcbbdebcebcccddbbeibbjcghbdfbbmdbgjebejbbeccfccdhffcbcgbbcdjcfdkchdgbcfbbbccbbcccbgcdddddbbcbcebbbbbddebdiecbfefddddncccbbbbbbechcibkcbefcddgdcbcdbdedbchbcccgcbbbebcbedbeccbcbgddcbedfbcbdebieebbbhbhddbbibbgfjfegbbbfdnbebcbchcdcgfcbhebbbdecbgcfbefbfebddefccccbbfmgcbjcbdbgbdmbebfdhhedegdcbmceebcejfcbebbecddcebbcmcddfeckbcfmbeggebgebcfficcddbcgcedbbdbbedddcbejdbbcdcgcdbbdhbdblbbbcticbbcbebcccfcdcccdcbnbbfebbggbcbbbbbebbbcbefdbdfkcbbbecdffbcbbbbcgebebccccbecccelcbkigbcdecbbhcbjbficcfbfdcbbffbbccbfdbcjcicececdhejjbgihdeedbcbibebfbcnedbdcbbeEchfbjbebccbbbdfddbmceenebbebcibggcbfbbfbddhhccdeubcldfecedccbbcekejeechbbfcdgcibcbebcifegbbcgicflbgfbbcgbgbibbbeffibdccceccccbebbebfdffbcbdbdbfcdfcbbddebbbccgdbbdfeccigbbbefbbdbecbcicebdcfbccgjdfgdcfbebcdbbbbcbdfcfcbjcgfbfbcddgeibbbbcbfbbbbeebcbgfbeebfbbbcbdidbbbbkbcdbbbdcdecgdbdbeecbbcdcbbbbbbkbkcdlbbbiedebdbcbembdeeidlegedgbidddlcbbbhebbcbbbcdcbcbcbfkbbcfceicecddddffccgccbdbbgcbdebbfegbcbcdbccccdgccbdgddehbdgibdjbcicchbbhbcdcbbbfgdcfjjcceccbdecfbchcffdfcbbbebbbehbdccdfcbicbhcbddifcbbpfeccdbefcjebebebccdifdecgbbogcgbrgkdddffcbdfkfbcebegbhbkfbchfdfcbndbkdbbpccdbbdfddjcdccbbcdgebbbdfdndgefgbbegcbbcbbbcebbiddlhbcdgbgcbbcbegfcdcdhdggbbjgbeebffbbcbcibdccbbebcfbbbcfbesdchfbkeehdchdddbbfbcbfbfddggbbccccccdbfbdfddbccibbbfbbiibbccjcgbbchhicbbbdbbdbbbebdddeedcfbcfbcbbddeccfddcbgbccjeibfbgbecheebegdcbcbbbcedcbdcecemgjebgcdhbfbcdbbecdbecdfcleccbcbbbcdcfbibbdbifdddcobdccddbfcbbdbcfpgebccbcfgddcchfdcbefcdcfhdbebchbghbbcecdcbdcdjbbbbbbbcbdbegbbgbcecghbbhcdcbbcebcbbbkcbcjcbebbcccjlcbcccicjbicbbbcecbcbebdcdbcbdgbcbcbhbegebbbkebeeibbbbbhecegfcgkcgbdmcdbbcfbbdbbdbbbdebccbccdcbmbccbmbbdeebccfbbdbblfkccfbcgbfbdccjbcebjededbbidbccdfdhcdfdebcdckccgcbcdbfcdcbgbddcbcgbbobcbdcbfdgbbbibgbbdhjbcccbibcblhcdcdbwbcjbcfehbbcedbbfbbbdddcbbhdbdhgbbbbdbdbdfbmebffbcchdjbgjbejeefbbccfbddbcbcddbbbcbecgfghebbcbdbdccfbbhcbbefflgcecbdgbebbedccbgibcgdbbdbegbcbfcbdbefkdbebibkdbicbgcbgbcqbecdfcbecdcccdcbbcdccbbbcjdbcbbdckdedbcbbedecbkecbcdbbgbbbbbfcbbcfdddbddbfqdlbccggcbecbcddbqibbbbeebfhbhcbbjjjddddbcefbjbeebdcbikccccbecdfeedbccidbbeccfbfbbcbgddfdbbbbbdbbcbdbbcgbbdgckccbbbecffncbbdbbbcffbbchibbdefcbbcbbcdhbdebdbeobbdebbbobcfbcdfbfbebfbbebbdcbbddbcbbbbbdbddjcbccbcfbddcegbcdbdcbbcibcebcdmdecbjbbbkbcebcdcdcddbbcidccbbeccdcbgdjbbbhbcbdbbdgjcdcecbgfgfcdbbbbbcdbbcdjfblbbdcbbeghcccbbbgeddbdbbbecfibbbddbdbedecfcgkbbgfcbbbggfbbbdcebbbbebcbdcegehfecdcebbkeecmbfdccedbceccccbbgecbbjcfegdfebbbbddbbhbcbbefdgceffccbbcibcccbhbccchbdbdfbddbbfbcccbbbcdmdcifccbdgldbegcuecdgffdbdehcfbebcdcebcbbbeebbbeidebcfbccccdcbbchcbcdcebdcgjecbcbebbgbdgbbcecbbdcbbgfdgdbchjbbbbcddddecbldpdbfbceddhiebbgecdbcelfedcbdeedbbfhbfcbcccgcbdfjeccccbbkdcdcbbdeeiddccbmfcebgbcbbecbiffbccccccbdccdccfbbcgdecfbgdddghbcdcbicbbecbbebdbdcbbbgbfbfbecbdcggccbfcfcfcbdbeebcjcebcckfbgbbbbfbbebcndbbdbbdddcdbbbcbbhbpcibbbjbcdgbbggdbcgcghdgbcdededcchkbccecdkbcgdfcjfbfcjbcchebfdkbdeebdidcfdjbbjgbdghbccgcbbckbhcbgcbkccjgcbebhcggbecebebbgbdbebgcbcdccjbdeccfdhcfcbchcibbcccbgcbdbecfccbdbefhcbmhbbebbcedghchbehccckcgchecbbbbcbbcofbdbbgbbbcdhbdkibbbbbbbfcmcxfbbbbbbcedbhdgcdjpdbbifibdbedbbdcdfdhbcdcbbjebefbbbcbdedcebdgdcbcbbjefgbbbcbfdcefhcffbbffddbfbebbcdijebgdcbcjccekbceeiddcficbcgdcbdbcdlcbifdgbcfcbfcdgfdfddbchcgfgdddbdbcbedgcdgcecbbhcdbbpbfdlbbecebfrchdbbcdmcbbbbgcfbfhdeebccchegbbddbbcdcbcbcbcbgddbdnecbbehcdcbgcbcibbebeefbcbedcjecbdgbcbefbeqcbbcftbcghfdedbmbcdgbcdcbecbtgbbbccbhfeebccdccfbigbcbcjbdfbbcegdbedcfbdcbdchkbncdebdpgedccbhecfbdbidbcccegbbebccddbeidkbcbcbdcbbhhdtcbcccddfdcbgidbbdfebebgcqbcbndbeddieebcebbfbhfbdeebbfbenfbbcchddenbdbdbebbgdcbblcfcbfbjcbbebddbbicbbececgbjcdcdcbckckbbbhbcdbkcedfbbdcegdbfbljbcgbheicbcpdhbcefecegdceccfdhbdfbfdidcjdchccbeebiccdcfbdkebkdgbbfbffdecbfgccedbcbcbfeoccgcdcdcfdcecibebhccibejddbdbbbhbbbecbcbdijfhgecbgccfgkbqkbcclidddccbdehbcbbgdcbcdcegbbbcdbeddgcbbedbgcghdbgecccdecgdbfdbebbcdccdgbbcbjjbegddfjcdgegcbhekdbbcdecffkccdbbccdfbcbcbcbecbbeemebcccbfibbcgccbihbdbcdcbicgckcjbdebbbgbhbjbfbbdgbchdeddcbcgebbebbbbchgbbcbkccbcbccbcgfcbhjcbbdebddddbdbbbgfbdbcbbjcccccibbfgcbbccdbcdfbbcdbcccbdcbdehdpbbdfebedehjcddbibcbfbbcpcfbbdcgbfbdfbgcedbhbcbbbbhccdbcbbcdedgdhdcdbbebcfcfddcddcdcegfbdbchgidccdgcbeciiflbbdbcfddcehdecgcdbdbdfdeedcebcgdchebbwgfggfecbcbdcccebhcbbbbebbbbcbbbdbbetideccbccgfgebbbmkdcccebgbbbbbgdeecbfjfbgkigbbbdcebqhbdccdgbcbcbtdfkhdgsbcddodckbebbcgbbfbdbgbdcbbbbbecchgchcebccgfcbbefcbbgceggcccgqbbggfhcbdodcbbbbbbdececdbhebbbdecdcfcgbmbbecblbecbbbffhdcdbdbedccbdcbebcbbbgbbfecebcefbbcbibbhbddfbfcccdicbbgbdfccbebcdfgcebkdjdfbmcbhebcbfdfbbddeebchcjbeccbbiodgecbbcbffjdegbkeedbdhgbebcbhfecebcbccbcbmeeclcddbbhfcbbcbbebbfcbbfcbbcjlbhbbcdccggcdebeehfbbecbncjdmbbcbfbfqbecfkccfbcedgdcbchbcdebckdccbdcdebmekgbfccccgdfhgbcbbbbcfbbfcdffckcdbknfjecdcbdgbchdbedddcdedbfngbgbdfbcdeecddbbdhdbbdbgfbfbbeccdcgbbbbdiecbkblbddccjicgfbdbbcdfbdbeddbdddfbbbbmihcbdcccbbbbhgbgmcgcbgbbdfgcbbbebgcbcebcdcbbbhbhddbebfdjfbeffccccebcddbdbbebbbbicbgbbbkdehbdhcbdbfcbkdgebhdjccebcgccbhbcdcmedfcbbecjbjelgthdcdchcdhbbcdbcccjebhcgdbicbkcbgbbehfnekffbbccfebcedcebbcjkfdbeebgbbbbcfdcbhcbebfgbfjbbmbggcbjgbcdfbkecbgbbbbbegdjbccebcfbjgcbcckcfgdbcdcbccefefebcblbbeukjbccbccfdbebdbegbbbbebddhedfdbdfddedeeecfbdddbbbbdgchbdedbddbgbdgcddcbbbbbbchbccibdcbdccbdibmcddbfgcdedhccdleddbcgebcddcceccbbddbjidbbbedfifcndbceebibedgbifdbdbfdbcjcbbbibbghcgccdbcdfccbccdbcdcbhbhobfbcecbhbhbpdbcdbgdjidgdbddecnccfddeeebdhcdbbbbbecgmhcdbbbbbjcgbdicfdbcdicdbbbccjbcbfbcbbigihhccedceccbdeddbffccbdcfdbdbbcfchbbdgdbbcdcbedbdddbdhcbebebdfbfcdbeocbbecbgcgcffbcecebfdfccbbclmfedbbccbcclbncgbgbghecdcdbccbcbbgbbecfdbbbebifeidccbbcfbcbbdbccdbbbcbccbefebbcdbhbbbbecddecbfdjhebbkbfbbccecbbbbdehbdbbfbfbcbidoccfecneddbccbbbehifbdbccgecbfbbdcbebdbbceihfccjehcbedbdcecccbdbbcedbbbececedcddbbcedbbchcbgebbbecdcbcdddcbecccdelbbcccgdidkccccdncegebdefbbbfgbbcbddbcdhfcbbdgbdcicfcbdbbbbbbcjcbbbhebbbcbibcbccbdbfdfddcgcmddgbdcbgkkcffmffdfcbbbgneiccfcedcmdfcbbdhcccmdbcdcddecbbfecfbfbgbcjggcechfcdbdgchbdcciibcccebdclddgfscbcdocdbbcbecfcbfebhbkcelcclbdbcdebeobbfjccdtfbchieccbegbbhdccddbdbdbcdkbedcgbbjdccfcbellmbgjbfeebbddeedcbbcbcidbcdhcefcbehdhdhdbdgcbgfccidcbccdfchbbbcbbdcddbgbbecdbbbbbbbbbfbdkbgqbdcecbgibcbbebqbceeegcbbedqbdfbcdehglbfccfeefggdidbbddmbdcibfccbbbdcfebccdkcdbjbdbcbcbccdedbddcddbemddgbebegblhdbdcgbbbfbmdccbebdhbbfbfcbdbechbdjbcddcdcbcddidibehebfdbecdhdeegncffcbbbbbcgcbfdbbbbcfbcdbeccbcdedfbfbjeegebbegdbebdebcbdgeebcbdddhccggdchbdeedbdcccbbfddbccgdibcbcfddfedddfgfggcdccbdgbccdedfcbgccfjcegfddcmdcbdbgbfebciktehkcdbbeedcbbhdcgbbbkcdebcdbecebbedbefegdhbccbcdddccdbcebceccecbbfblcecdjbcbbbbicfcbddcbbcfedefocbccceddbbdbgbbecbdgccbbdehfdbbcgbcfbcbbdbeddcjccccbjcbcdlbfeddjbicejecbcebcfgbccbejgbdcdbcbbbgdbgbcbdchgbbcmbcbccbbdoksibbpebbcbbedegbbcdhbbhbbeedcibbcdfeccdjbdhjfccfbccbccjbbbhbcibdbcjbcbbbdcbfhbfdhebbcbcgfbhebdbbbbebdfhdccddfdfhbcbfkbjbbbcjccddcdcbdcfffccgciidbbbdbcefdbbbbbdfchbebdbdcdccbicdcbgfccbiedbdbbgfbebccdcoifhncedbbdbcdffodcbdkcbbbdcddbgefdbbkdbbbcccfbicbdecibeedcjdbeljgxbgccdbbcfhcfdbcbcbdccbjdbbdbdbbbbgkeeebefbbeicdbdbgbicdcbffbbccggbbbfbcdcdgbfbddccdgddbgcbbedbfbebiciccbdbebchcdbcffhfbcbcfeebccbbdfbdcddfjfbbbbcdcbhfdeeibgcbfbbdbhgbelcfccecbdbehdbbebbjbeeelbbfdjccceebcfdbfcbegbceddbbiecbbbdcebbcdccbbcbcddcbecdddbbckbcbegbgbbbgdbdddbhsbfbjgbecfdkbfkbibbibibbdfbccbdffebbebbgcccedbbdbbcbffbbgcebciiidbffbbecbcecdbbbbdccfbfcechdebbfcbhebcblhflfcbjbbcgbddcegdencfgbccecfhbhbdnbgbjmfkdbcefcfbclbhcbdhbhkbkcdcfbbbgbccgfgbdcbdcjcbdgbdfceddedcecbcjccbbbgcfbbffbbebeddbbbccbdfdgodcdcdcbbbfccbdbefbdcbhdbgfdbebccbdbcdeebcldcbleccbbcbbbbbbcefbeecbcebeccdfejdbcdciccegbdbbbfobbdefbndbbcjbbbghcbelidcbcebbgebbebebehcbcbebcfegebbbecbebbdcbdicebcgcbibgdhkbgerhbejcbbeecbgeqbccecdfbcbbbcecdccbbggbcgicgdbchfmcbcbfbbebbjgbecbbcbccebbbdccidgbcbfebcdgdbbdcgdkbbbdbccbdfbcccnbdiccgcdlgbbcddbhcdjccdfbdbcdbcdbcbbcifjeeccdbbhbckcedcbfbgehbndcsfhdbcbcebebehededcbcccegcdbgdfbcdgfebbbqdhcdbbecdcgbcjblbdgcecegedebddheffbcbbdldbbcfebdcbddbfccbbcbcgebcbcdbdbdeedfficbddbdfbebbdfcbdfbcfbbcebebchbfbcdbbicbcbedbbdeccddbcbccecebjebbcbdcbhgebbddddbbgjbmeeggbbgedcefbbbkbeebcjgcbdegcicebefbbdgbdcbcdcbbcciicbbbcgcdbhebddcdeiceebccctbgcfbdbfeccffgccbeccbfbdddcccjdcjdbbfebdeccdbcedcbbdbbcehcfdggcefcbdfedfkbcdbbfdccibdhckbecbbbdcbbfnbgcdccgccbgbobbcbbcdbdgccedlchebfbbbdeebdfcbcdfcefbdcbdbncddbbgcddcbedfhfebcfeibddiebrdbbcceeddcccdbcfifbbeebbcbnbbgckhcfbgegcjdbefbbdbecebebkgbccdcfhgbdfbbbdegebdfccbfpbcdhedfbdefbhbdddbbdcdcbpidcgbdfcgcebdedbdcdddcbbgdcebblembcbbcbbbbieccebbdcfocbdfhdbbdcbcbbbeijeeckibldbebbdbfcgcebbcdecbghkcddfbcebejcbdbbdjbdbdbfcebebdiehbfcbeegdcefehbiddcbcdbgbcbchbcbbbdbdbcgcdbbfdbcbcccbeffbcebebbbeebbcdcdddbedbcddiccebjlcchdcdcecjcfcdheidbdbgddbigeccmfccdcfcdecefbbfbcbdnebccbbdddfcegbbeebddehcbefbedcednemdkclbcfbfffehbbdhbhgbcdbfcckcbddgcceeobhdbjbcccbbbcggcbhfckcibbbkbcbeecgbdgfdbddfccddbcejcdbcececdeebelibcdbbbhbbcbccccccedechegcbbbbbbbbjbddfcbcccbbhceccjhedcdcidccedddbcbddcbebbmccbbbicpcclhbeigcccbdhbccbgbcfechhmbdcfcecbbbebdebblcebhbcgccbecigbbcfbcbcbclhcbicdbbdfdfbdddbbledbgcdfbbcccccebrcbdbhccbccccgbdcbcdcbfjfbjjckbdidcccbbcdecggbefbbicbcbcbkecfddgdiecdblbhgdcbccbgcscebeldmhdccfcbcdbgegbcgcbbbikjfbbcicdcdbbccbdfdccbbkbecfhegdbfdfdbgbcbfbbbcecfblbcocbcbdfddfhcdcdbfbcbdeedbecedfdfhchdddccfccgcdlfggbecdjcfdddckfbeehdgbbcfdgccbhdukedeeedbbillbdegbjccbchcbeecdbhcbblebibcbddddcbecicbchcbicjbcbccedcbbghejcchcbcceccbdhccccebbjcmhkbmcbcdjecbfbbeeejfhbbbgcfbibbcbegccbfdddbbecebedbfpefdbbbcebeegdcecigmcbbemiechnceedbbcfbejdebbldiecbcbbbdjcbhfcbbbhfidggehbebcipecchcbcbccbhcbcbcbcbkbdifdddccgbbjceccbbcbebcbedcckcdccggicdddedfnbgccecdicfdicbbfcckddcbdkhbccdgcbiebecbgbgccggfbedbbdbebnbecdbbbdbgbbeddebbdfcgicfbfbbbbbfcdebbcfcbccfcccfdeigbfbbbddecdidcbmbdwcccedcdbbccdbfgfebdccbfbbbdhebbcbccfbcfbgbccccfbdbcbhbbbfbccdcbjbbbbidegfbebbcbbccgcgcdbddcnpejebbbbIjbfbcbggjbebfcdobfbecmcicecifdbecbdedbgbcedciccbbbbgfffdcddcdcbdebcedccbccbbdddlbbebdbcfbclbdceebbddbdjfedbcgtbddebbebdfcbbbbecbhfebbceeifbkegbbbeebecibdcecedebgfccgbcbfedbgddffbcdgcbbcecbdcedidbccibbcegddffdcccidhgbbbcidcbbbfhfepjcbbdbfmbbbeccccedbfdbbbbkbcgbblbckiiccfibekcebbbbbebdbeebbjjcgfdcpchbedfdceebcbcdcbdcebqdbkgcdhcebbbhdibbbgbdfffdbecbccdebebgdcbbbcbebhfcbfdjfddbdbccbbbcbibfcgbebdegcccbbbdefeccbibecdcdcfdccedddhbgcbcdbechbcccdbegbcbdfdcdcibebbccdbbddffebdjedfclcbkcbbecbbecccbbjbdbcbcbjbffbebbdbfeieeebffbccbbbbdehdbfetbccjbbbdiiedhdgibbbgedblbcgfdfcjdcjbdbhkccbhebbcdcbibfbkfmchhefeigbbbcbcbebcbcbfbfcdhdbdbcbdbiceeccbeddegidmggbccfdlkjdbechibbbgbbbebedfecicefddfdcbfdcedibbcdgbbdbbcncgbbfbcckcbcgdfffbbgfedechecbgbgbbnhddjfbbcdbbdbheejdcjcdcgcecenbbebjgbbhbccbbcdcbtbhdcbbbccfedcebbbbbdbbfcdidcbfddbbbbdcbecccebgbdfcffbdeffdddeebbhcbhdbgbjdgihbbeceebjbfibcecbfbebchfccbbeccbbccdbkfhejbbecebfbjbdbibiechjidebiicccbcdfceccfhoffbdpbhfdbfbbcbdbccbefcdeigfdbccdbmbcdbdcbcjlbcdddhjcdbfbcdbebbfbdbdjcebcgddfcbdjhjcfebbbcdcdbbibcbigfccebfeelbcedbbgbbjfdgbhchdccfdehhdiebdcdfccdedicdbccbcdbbdbmcejbbdbcbgfjcbecgehhcjfbcbcebcbdbcbcbffdbkfibcbcqebhbbecbdceccbbjcdjbecffdccebgdccdbbcdebbefdbccccbbbffgbbdcdfciebdedieeemjgfbdfdeebcfcdgfgdbebbefcdebddgcbheedbpcbdbdbdbbbbddcqofbfjbfmdbddccdpiifjbdegbhcifcebbcdbcbcgcbcbbdibfhbgddhccbibecbbfbfebcifgebigecbikcdcbfeegebfdecbcfbbeibccgdfccdidcddcibdkefdbbbndbbbcdgbcgcdbbgbebhcdbddfcbgedcdcbcceidebdcbbdbbgdcgdbcbgcbbcdbbeoepfceebbbdebdefcdbcgfdbfebccddebdbbgfhdbhbebhcbbcbddedcfdfebeehicbgbegjjcbgcibebebbecbgcccbdcfbccebcjecdcbbkogbcccghcbdbcbbjbdobfbbbfkjbfcieftoibfhbiebccebebbdchcfdbcheccbdefbbbcgiefebbbibgebbhfkdjbedccheccgcicdbeccbeibcedfjcceidbddccbfefbbbbbbidcebdcbbdbcbebgccbcdbdhfdkcddbcbcbcbbccdhbbcbdfdchecdcbbhbfbhfecbbdccffbdbgbcjlbbbdcbdbpdcebckbceccgdcgbccdbccmhbbdddfdcbfbceccbbbccdbccbdieebbbbbjegdbdedcdbdcehbbebdghccfbecbdgbbcbfdcebeedkdcbccfdcehfebdcbdfbibgfgcebgbbcgbbbbgfdcbbcbcbedcbgibbgfebbfbdcdbbcgdecbggdbmbcbdicjcbbfdddmccfbbfhhfbbbbbcbjbbfdccbbehbeccbdcjhbbccffbbebecbbbfbcbbdblfbbbfeecebggeglddbdcbcdhcbdbbcgbeccbbbddcbebdbecfcbgddbkebhbjhcbbbeciocdrbdcbliejbcbcbcdbedfdfjcgbbdcbdbddcbcbbbcbecehbkbbeibgbkiebffjbccbkccbgbghcbbbjhchbblbibbfeccccbecgcckibebbeebdbfccgbmhmbbbcbcfbbbhccdcebcbcfbcdfdbdcdcfebccbdcbecebbfbddbmddhebbbejfbbccbkhccgdbdbdfigdccdecdefickcfccbdhhcbikbedddccffebdbbbbbbgdbbebedbbberedcbbbbbecccicbdccbccebgbbcgebdfbfebcbdiebgibcfddegfcjfcbbcdckddcggdmbcbeecjbdbdbidcdcfbgbfbgbbbecbcgcgbbbbgcdbbcfcbcffejecccgccceccbbddfdgbdibbjcebfbbdbrbgcdbhdbfbbfcbhebcbdbcbdfdbdgcbrbbbcccbdhfbgebdkjccdbbgeecdmbbbbdbjbccefccdccbfdbegbebdfbfgfcbfbgbedccfdfcbbbedhddbebcgjhcbecdbicbbhbcdbeeebbffcbbnddddbgbcdfcbbbfbcbebdihdcgdcdecfbcbbdfdcffjieedcbbdbcbcbccbeddkdbdfbceccbdccfcbkcbbbgeibfcbjcccfdbbcbbccidbbbfbcbbdidbecbbbcdbfbecchicdcbdkdchmbhdbhccbefbddcdfccbcdbjbefgbfcbjhjepffkbgbbbbbhhbcbbddcjdcbbccecbiccbeecbdbbdlobdhfbbbbdccchbcdhfdfcbecbbbecbmcbecbbedbbccccfcgegbfbibcbcfdhbcebgbdjbecfbgbbchdbbbfbcgbcudcbdbdfbblbdbcbbhcdbebccgdfbbcdddfccdcbhbdfbbbcbebimbbdbjdhdbbbgbbbfdgbciegbbcegbbehcddcbbccebccgchbfdbebhbddbhkciidgcbhbbbjcdediccddghcqcfcebebdcbfdbdbgbcpbcdbbjcbgibdgdbfbbbcbbigcbcceeecbbgibccdcdcdegddfebbecfbdccbecbibcfhdbdgbbcjbebgbgjccedfdebbbbbbbcehhibdbddcdfebcdcpbbcbcdggdedbefdbccbcbfdcdbgbcfcfdccefcdedbfcgbccedcbbbbgbbcdbhdbfdbbbbdbcdcbdccgcbbcbdbeddbbcbdbecbccdfgdbcfclcicdbfbcfebbfccgcbbebbcdddfifbcccddcdekhbbckccbdbrcfgehbbdbchgggdbbdchddcdcbbbdiddbbcgbcbbbgcdbkbhcggebddbdegbhdebegcfcgchdeifebgcibdibdcjnbcbccbegbbfccfcbebfgbbegbcbkebdebbbbcbbkcfdedbhbbbccedcdbcbbbfbccfcccebbibcbbfebddielebbfbbecbmbdbhkbbcoiedceehedfcgbbbbjkbccbdfebbfcbbbidtbcgdcbhgilbfbdcgbbchcbccbclcdbgccegezgebddcejbbefdbbdeddbbccmbbbcbchjbfbgdfhkddebebbcfbbdbbbdfbbbfecbbcdbcbbkbbsibbebdbbdegjbbdcbgfbdehjfchdocbcbbdbcbdfcecgcebbfccchccgbbcbddbdbcbdmbhgmdbcbccdbecbedfbeikbeifbbbfjbdccidhcgjccfbhcdbbdcifecddfccbgbbedbfbcjedfbcbbfbcbcecbccccicececedcbcbgbbbdbegfdccefcbcckedbeidddbjbbibcbheeccbbbcbbidcccbcddcgedbbchdehgfbbcfcbhfgbbkeddecbcgcefkbbbebfgebcbgicfbdfccbbegdcbdbefdbmccfbbdcgbcddbcbcecjblcbfbdkebbbeecebbcbgcbbbheeecdddbibbbhcdecdbbdfeccdbbbdbbnbccjcdfbccbbjbbbbbdeefdgcfclcfcboecbhbbcbfibbcbdcbgbbgdhdgbbcbkdeibmdcbedccccdcbgcfocbdgjcjcbcficfcfcjcnebfdebfcbmebdghfbngbiebbfbhjcdcbcbccebficlccbfjbgebfbcfdfgbcdbegbdebciddffebeekdgbcfbdcefdcbibkccdbbcchccfbbccfdbbhbdbddcccigbdhebegcbcbgbbccgdbcfbdcbchgcdhbiddfcidddhejebbefdeceefbbbbboccdgcdbgcgibbfjcjeddicbcehebbdfdbbcbgbdcceqhbbbcbbbebbbbbfbbbdedbhbcibbcnicdeddecejbhbedleidggdecdbhbedcfbccddhcbddbjbdddbjebbccbbcbeccdbebccbcedmgggbcbhbbqfbbidbdfbddcdehcbedbdbebebcbiidcceggebgcjdhdbeecpfeccbjcfcfbcddfibbcbddcgcbebcdbcbfgbeedbbcceeicfbddhdcbcdbbceeccblbbhcbgmbdecbdbciddcbccdbfmckbhihiebceeccdecdbfbjdddcccbdbgbbbbcbbbciicdecbcdbbdcbfebdgddbbecdbebfbbcbefcembfbgbdgbcibdbcfdbkbdbcdbececfddbbcedfbegbjcecbeddueccccicbcibbibcbdecbchbffeckdcbcbfidccccbcnebbeiecbecfcjedfghebibcddeibfdieceddcbdkccebcecbmcbdjdhcbbbgcbbdfdihbcbibcdcbbbbegbbcdbebbcdecbcbeefbefbichcbccdcfgbddbbbiffkedbfbccddfnfccjbbbefbcegfcfgcdbhdefdcbcccdbddbbfdcebfedcebfebkbsdbibbdbcedbdbcccfebbchdecebbcfcbbbcbbfccigfcgebbbbdgjcbddccfjdbbbbcghcbgccggcgfbdbgdcdcbidccheedgbobfbbbebfcbdcdbgfbhccfgdfbgeckdibbddgbdelhebgbgcdbbjfccggbbeeccdbchcbbcgbcfdbcebnbcejlbdbcmhgbdbccdlbcicfbbcbfbbcnbmebbcccbbhfgdfedbbgcbbccdbcbpbcbebldcedbjbbbhbffekdedbcbbeecbhcbcfebecbcbdddbbodhbcbbddhfecbcbbbbcecbbbbgbgdcdfbebffdccbfbdfmbcedcbdbedccebecbbcfbbddebeffhbbbfdbbbpidfdddehojbebdbeeibbgbdbcbdbcbfepbcdfifbfbeiceihddbfbbccdbdecdbddegececdgkmclbbdecidedbbbiebgcbbcbbbbbhccbibbcbbfejefbddfckbbihgcbjbecbdbcdcbfcbebbeefgcddkfihkebbgfcfnbfbehedhfkbddcbcdcckijbcbchcddfcbgbcbbbdgbgbbbbcikcbecddbdbbblcbcdeicccdbddbccebbbgbbbdcckhecgldfckhdbqpddbiccbgddcehdfbfcfecbfdbdfcgbcecbccdbbbfbbbgcgbedhededdbddbebccfiebgefbccbdeecbdedijbdbbcdcfcbcgccbbehckddcbbbbjcbegbccmmbfgejgfghdbbbjcdbfebbhhbdcgccicbclccbbbbbddbfcbcdbbbbceecbdcwbbchdbcdddcbbbegkicpcdcbedfbedcebbcdeddbgidcebbcbbdbghbzcfjfighcdcccfdbfbhbhgcgbcfebmkcccgibdjccuibbbebbdfcebkgfbdqcbcboleefecbbcbgbgbcgfccbemencbbdbeghbchicbbbebebccbbbbeefdcbdcbjmddcdbcbdccfbdeedcbdcfhbbgdqdbcbfevcgeddjfgcbbfcbedbceccdgbbbehbcemedcecddjbbbbhbfebhcflgbcbbgchndblbecbhbbcdgcbbbbfbddebgcfbbdibdbgbgebegcbcdbhbbhbbbebgcibfbdjgdcddbcbdjbbefccbcciibdcjccgebcbdbbidecbejecdkbeeecicgbkchcgfghgebbbgecbnbcelecdgbeedbdbehfeffccecbhfkibbcbdbdbceebbcbjhlbbccecbidcbgcdgbcicclhcchdgdbngecbbeeeeoedddbcbbrbhecdcdbcddbkgdhefbfbbdbebgdcdcbchcbddblebdcbdcdbjcebgdefdcjefbbblimbbbfcelcbbcbcgbdcbcfecdceccmgbcfecbeeibbcbdchebbeedecbbbbbcbcbbfbccjcbccfcbcbbleeccgdfgdebclebcdbkcebbedfiefebcbbdecccbfcgdbeicdbcbdihnbbeccbgbbfdgccdcdheccdbbceccbbdefdbbbccbbgffbmbdcdbfhbcbcbdeebdbcejcecdcccbefcdbbfepicbdebddfcecbcdbcbbbcbfbcbcibgbcbchebbcebdccccbecbcccdcehdgbbbcbclcbdkbcebbbhddbfbcfbbjbcbhbcbkbedebecbfcegeibccdebbbbdfdfdbbmbbcddbefcgbdbhdebbcbebdbblihccceebfcbdbccebgddecebbeceblbbpbdedchceedbfkbhbcbbhhbecglkbecfbckldibchbbcbbdbbgbfcbcceedbdcbbigcbebdbgdcgcebedcbefjdecdddbgbbbhefblcdeeccggbcgbgbfdfdgeegbfdccccceeccbcedfdbicfcfncdcccdjbbqdhehbbcibdcdhdefcddechcifibbbcefmdbhemceccbjedefbbbbbbcdeebdkcecbchbefdebihbebbebbnebebecmbdjkcceccebdgbbdcdcbddbdedbcedccejbbccbbebbchedgdbcblciefddcebbcelpnebjefdgbebceebbbebdkbcdchcdfbbdcbbbeeedgcbfbfbcgcgebbddbffebcfgdbbcdbbddhcgdkbfcckhbbdbcbfmcfbdidbcbbmbdbdhijdfcdbcfbbcibbbdmeccgbjcbcbcgigdbcebbebfcbecdbccgbvdcldccdbqefdbbebbecbccccccbddbchcbgfgbfbcfbbfdecbjbdcdehcfhcdbbbbebfcbdcbbcjbddbbebdededfceececdfecbbfbncdjgbnbhcgbfddbbdgidbbidgccccbgidbbbhcmdheglebbcbnccbgibeodbbecfbebbeedbebdclcbbcjcbebffbcgdggbcdbcbbgdkdedbebcbfccdecbbbbbbhgbdbcecoefdbgdbfcfeegeedbcdcgbbefcmeeccebcbcbedbegcbkdbfdebebdebcbbbhgdgjcbengbcebebbkgddddbccbekghbdcbbeccdbbbhbbeddbeicjbbccddbddmbdccebdbbbefckbbcedhbbddebiddfcefbeeccdedbbhgcgkgdbehddbjbcbdicdegdehcbbchfdbcbfbdbbbhdcdbcddcbdfdbdbbdceicclbcedfkjbbbhbcibcgecebbdcbedbcccfebdkedccdbbddddicbccfddeckhbhbgdcccdgebfbbbcbbdccecbbbddccddfbdgbbbccdjccdbccbccgcdbvcbbbfddbfhebdebcddbbdemdibgbbcgbggbcdcbbbcccbbfbcbegbbbbfbbccbbcebkbecbccbddgbhbdddbddbecbehbdbfcbtiddbbbcbcchgghdccgdjhbdbglbdgddedcbgigbedbgebfbdbcddedcbdjecgbedjficbgcebbbgbcdcfbddboccbebbbecdfedbbcbcccbcbdfbbcbhbbcfefbfbdebcbcbddjbcbcbdcmbfbehhhbicdbmibcbbefedcbgcddgbccecfbbmbddebflciddkcjfbdbjbnbecegkbcddbfebbkbdedcbhbrgebbbedcbbebfbdigebjddcecfbfblcffbbdbbbsegcbdggebcbbdebbbbcdcckbdcefbbggfbcbcbbdbqdbfibeddgbbgjdcdehbgcbidfbbbcedbfbcqdbdcddhledbdhbeecehdbeeeffebciccbcgbbcdcbgeicfbcddccbhfbddcbfbbbbblfcbcgddcbcegdbbccembfpfgdbbehfchlbchgbgdblbbfccbbhbbfccdccbcebbcbecbdbedceghphbffeccbcgbbefdbdcgdcbgbbgbbbiecdclbccbebccelccbdffgdjeebfcfccbcgbcdbckdbbcffbhhhbfcdedccbqegbjbceebgbdhbcjdcccdckbccecebbbbiecehbbbbbbbcbbedcbbidfdcefdgcchdfbicgeeelinbdfgbcbebbfebediedbbbbdeijcbbcdbcgbdeecdccbcgdebddbfbbdbcccedcbhfecccbbdeebceenbbddcbdfeidccdccfdbebbdficflbcclcdfceeedgfibbcbgdbbdebjbcbdbcddecbdgbfbhegdcbccbfdcbbbcbkdbewgccgbcdbdbbchdpgeffbbbefbbfebgcbbmcbdbcebceddbdbcdbhbbebcgfedbccekcbbccfeeccbndececdbfeibdgbgckbbcgbhfbbbmbdbcfbjbbcjbecfbdbddbcccbbfcbbddgbgdhbfbcekgbbdcbhfjcdbchdebbgcebdfdeebecccdgebdhfcfbdfedecbbcddbbfdbgdfbiebejfccbeddccclebedhebbceedcgcddcbfgbcgbbcbccbebfbbfbhcbgdqhhjddecfhfbddccbbccbbcecegcdcgfbfcbdbbbdcdecddhcddnbbngbbhbgjmbibdcfekdfcbbibdgocfcegbdbcgdffgibfbbhcbecgddcbebdedihdbbebcdchbbbbghbjgedccededbkbegbbbbfdbcdecedgcfbcedcgdbbbccikfdcbicbicfgckbdfdhebddbcclcbdjdfbbccfdbdbehhbcccbedodfbcbccbfgbbcffbckbeebbccedbccbbcgcfebbbheceedcghcbccdcebdcbcjbcgbjbelbcfccgdbbbdcfeddgdcbdefbifbcclcdecdbflecbbhfdbqidcbbfbecfdceecccgfcgbcbbfbdbfccbgebcebdbdbccjcfebcbecfgbehfebbdifbcbfbbibbbibbfcbbfbdbbbdbccbidfcbcdefbbccckcdgbdhbhcgcbccbbdccfcbedbefbdccdfcgcgbefbdddfdjcbbbbdfffbhifbcbnjfcdbbbdcbbkbjebbbghbeebccbdeeedffbecbffgbcbbhccbdcceckbcbcbebebbmfdgbcccdebcefmbbbbdbcbbddbfdbfcbfhbefcbbecbdedccebdfdbbcbfbcchcbcbfbmddjcbcdcjcbdfcehdcecfibddbibbddfbcffkhbdbjgbbgbfdcbecbdbddsfbgggcdbelchgdefbbfehbdechecicbbbbbdcdebejgbefcbbccbcgfchcccbhfbdcccefdbcggbddbdecccfbddbfjefdbiedrbbmddhcehbebcdcccgdbbbeefdkffbdgdfnedbdgbdcffkbbceffedbbddbdbgdbcdgdbqbddbicbbbcebbdifdgdlbcbcfcbbbdgdeebbbgccdbbgdbccbdgdccebcbdhdhedicbebbbbdbbfecpcddcdcecbbbdcfcbbbgbcfcecbibbcbbbejdbdfccjcbbcefhcdbbcccebbdlbbfbdbbcdbgdcfdebmbcbfbcibidcicbccefecbbbgbebicbhbbcceibbfgdbekedfdbebbbbbbkbibcebbbccdghgidbbcbbbbeccdccgbbfcbcbbibbebcdcbcbbdbecikcdndebgdddbdcdbbebbecbebfddbbeihcbbbcdbdbibebcddbbbdfbccbhbbcbffbcxedcgbbfdbdcbhbebccefeedbfecbbgfbebehfbfdedbdeibcdbeffbdcbccgjbibgbbghdbbgccfddfcbedbdccggbcbbdbcbdfbbcbdbhfwgcbebecblecbjdbcbbbfgcccfcbcdbbcdddichcbcigdbhcbfbbfbeeebdcecgdbdkgdhdgcefdgcebfbdebhbcbekbbebdbjbgbfbbfbfjfbfbbdebccbbbkdbmfhbffjcbdebefbciccdbebgbdceddbfecdcjgecbbbghhebbbbdbdbhcdcecfdelcbccbbefbbebegecfbjbebbbbdclbecbgbbddbcbffcbqbcddcicbedgbecigbeidcbdbbbbdcbbcdbcbgdcdebbhfccifehdecbibbddbdddbfbhbihjfbfecbfcccbqcbbebdfcdbidbcbiecbchebkcccicbbcbccbddcbbcbfbdfbcbjhbkdccdhbeibdfbcdcdbbogbbbbfcedccdeibglbecbbebccgdbebbcfdbbfbhefbbbcccbcbcfcdbccelbeecddfbbgdjhbhbkccebnebbbcccchbecffccdbegbcbbbbbbdhhbbbdbbcceffbbcdbfdbdchbjccgcbgbbhchfjdcdhfcecdgebgcbdbbehedfcjcdbbdbddgbccbdbcbecbbhobdgeegclhcbebbebcbfcmbecmdfbcdccogbdbcccefbcedccddbbddbbbcdhbfbbhfdblihjqbgccenbgbbhbcdgggecgmbebbebcbedbebgfdgbcccdhficbdbfbehdcdbdchdbidlbhecbddfbdcjdfcbcbbifbdcbbblcbeebdibfbchbgccjbgbcbcebhgdcdbjcfcbgdhebbbdebddbggflhbhcddneobcdcfbdbbbbdckidcebecbdbcdbbbecddebccbffbebbcjcddbcggcbbbbbgcbbbebcgcbcekbbebdiicccdfgbbchbejbjcefbbbbdfbdegbcdbcccbfecccddcebbbbdeibbbdiiddecbhdchggfddebhdbvffbcnhecgbbndccdbkhdgbbbbbdbfbfhcdfeeebgefchddckdbbccbbbfbfbgbgddbbcbbbhcedcececbddfbchdccebbdcbbbgcifgibfcbbddccbbbbbjddbihhbbcbhdbohiddebjbfhbbdcbfbdgnibbfhbcbhcfdcdcdgcbkddbhgbbfbcbjeddhbfccbfcdgbdibbdbicbcbdbcccdebbbgfhfgpcnhebbeccbbbhbbbegfcecdccbfgcgdbbbbbdchcbblcckchcbbdbbcbcfcedbdbibcfhieghbdcdbwdhblbecebfcecddbdcjjfbghbbbgccebbkgbcedbdbbcbdbbdbjdbgebebbcbeebcgebdcbdbbkfdbecfcfdccbbfdbebceccbbbcckgbifdfbbcdmbdbbbdbcdfkbbfbdfjkecifdefdceqhdcdddcfdgcbgbfeglcfcbdbgdbbgdbebeebdfdcfgbcbdbbcgfgcdbbbcbcdbcdbbbffbcjwdhbbfcdbfbcbdbbbfmbieeigbjbdbhceefmchjekoekdedbckcbcdbcchdfcebbcbbddcddibbecbdgbbbddbbbecbbbfccdbhccdbcdheibdeccbbdbddhfffebidogeccbedgbbcbedkngedfdbefebccdhddgbeeejbcbbhdfcidbgcgbgcbcbjccbhccfbcmdgbkjcccnbbebbgeffcldchbdcbfgegbebebebbbccibecchbiccbcfebbcbbbebfbjcbdbdhceccdfebbfibebbdbmcbmicbbbbebbbbfkeildcccebcdcicfcdehlbgcebbbgdchfbdedbcdbfcdiebecbbdccccbdfbcnbcfeeccgddbbudbbbcdeebebfbbcdcbdeedcfghdeegbedehbbebbdbebedhcdjplbjbbedbchcebdfjbbbkjbcbbccdkbiccibgcdbfhcbhebbeebgecbicbfbdbbgbbcibfhjigieifiecbgfddddmhkbkcddcmbdccbcebfbbbfcbbcfccbedcchbbccbdghedeffbebeieedheebbcccmbbcbcbcfbcfbeobcffdcceecdcbgldfhcejcdocbbbcehcbebdhbbcbdbeffcdecikebfcccbbbjbbcbdiebeibfbifcbkbbdgffdcbfcggbccbfdbhddfbdmcbbhbbdblbdbgbbbccfbbbcbcbcndbedffdbffdffgbfqccbdccccciihfeblbehjfcbcbcccdcldcdebcedgdbbdebbdhnccdfbcbuejcdgbegpcbcdbbbbedbfjbbeddbbdebccbccbbhfbgccedbdbdcibebbbbhcbbncfifcjdcgcbebbhcfccbdbmbbdbchecbdebdccbeiccfbehdeqcfbbgcbfcdbbdbbbdecbdcbjdffeefkfbbbeccddehcbccbdccfdebfdbdfbbhccfebcccdcbhdfcuebccbfcbdbenlbdiefcbdcbcfbefffkbggbebeelehbbbcbbccggbfcbbbdbfcgccicccecfbjbdcdgdbbdcbbbblbmcbbgcdbbiphbdbddfcfndbbkccclbfbdcifecedbfcgbcbbbcjdcdfhfbgcbefdebkbcgbcfdefbecbbgbgdcdfcbgbbdfbccccldfbebechcbcbdccgdbeobbbffefdebbbdccbdhhbcdehebebbfceebfbcccidbbeefggdcejbbccdebbbgifiibbbcecccbccbdjcbhbbhececgbeebecbcbebbdbdbfckbibhbdbfbcbfebidbbdbbbieejbfdbbckhnfdkfcicdbfdgebgfbhdhhfbedddcbdfbbebbeebbcbcfbebfibfcbcbcceibfecqcdifgcdeehbdbccbbfcbbbcdmcddschfbbecbbbcbcdjdidekedcehiddjbdidgddcjccbcbhjbdcbodbfbgbccibbbbchdebbbbbdedcebheccedbedcdcbnffbbbdbbgcdecdbchdbgdbccbbbfbdbdcbbbkccbdfcdedmfcbccddbcfcblcfdbffcebbbcbdebndfjbfecbccbbcdeibbcbjcbcdelceggbgcfbcdgcccbdbinddbbfcbbfdbbccdbebdbfcgfbdbebcecdhcbdbefbfdbkfbdccbgbiqebbdbbgbcbcbcgcdfbbfhbbcddcbdbcebdbfdbbdedcbbffbidmbchcegcbdcdbcbfcmcerbeekbcbbiigbcmkdjbcbdcdcbdbhbciebebccdgfbdecebbcbbdcbghbcbceibbggblbhhcebcbhbbbbfegbeeebfbcidndgbdcibbcebbdgccbdebbdbgdbibeccfegbbcecbcbcfeebcddfbdbcbcbgpbbdbbegbefcebbbcbccfjeddcffbfdfdfecdbfgcbcbbfbbcgfbbbcfbdcbdefdebdcddhebbcdbiddfbddobbbgfbgbfcbhkqbbledbfibhbccccldbfbbcdecjhcdcjccheqeeblbbbcbjbedcefhibddbcbbbbbbhhfgldoddeefgebfebcbfbdcbbchbecbkcbbdebbbfbccccddjekdebigebbgblhdcdhfccbdeeebcbchdbfcembdjgdcbbfgddgecggobcebcbhdcgbbkbbcbbcfdhbbdgbffcebcebdbbbbjceccecjdecfbmcchcccccegdlddbddccbcjgbecbbgicebceghbdjbbbcbdeccbbbfbbchdcdbdmhdbldjgbdhdlecebcdfdbbdfbfcecfbdbfcbgeebpceedfcgddhcdchbkjbbeebcfebedggbcebebbecbjdcecbbdhbcddhdggbckcglbdcdkbcfilcbcbiecbeccobdbbdjbcdccbcbbegtbcdgbdebbbceccdddbbdcbebgbcdhbccbdcbfdbdobddecbbccebbcdbgbbmbddddddecbddechmgbdbbcccebbedcbhccbfbfckedbbeddgbdbcmbcccfbbcfbbehbbbbbbbfbbbbeccchfbbcnbdgefbbddcbcddefcbcdccfcjdbbccbbjcdbeccecbjbfbebcefgdgcdfcbbjlhcbfccbbfbcefeccdcdegbggbdcbgcbegbqdjbcbcccbiibbcbdebbehbjcdimbcbdedbdbbcdbbfbebcedheehecddcbbbidgbcbbblbfpbckdfbfbhcbbcbbcecbecdekeddcbddfbedcbiedhfbbckhcbedcecddgcbfbbbdedcfbcdbggbccbbcbccbgcbhdccdefhbdgebcccbdcgcldbbubgchdgbfcblbbfbebfbncedbddidebigcbcieccebrfgbcgebmbbdkecbbkcgbbgobebfihcgbfebcbbgibidhcbcccbbbbegjdefdbbdbbfbfbfbccfbbccgcdfidcbccbecgcbgebbegcgegebecbdbbcebdkdbbeccefbfbdffibcbjcbccebedfhbfflehbebefecbcdbgdgihcgbcebbidiccjccbfccbbbbdcbdfbdecbdhclceddedfcipfbbdfefdfbcgbbcfbbicgdfcbfcfbecfgbbbbcbbedbbdbbbcihbdjcfbfbccceebbcbdodbeeefehcedcbcegediebccbbfbcddhccdeebbbcfbdchffdbchbjgghegfbddcfeejibcchbfkcbeebfbdcddbjdkbbdbebdbhgccbbdbefdccgggcdecffcebecbdbbdfpbbcbebffdebbbbdbfcgcccekebchdccjbocdecicedkbcdbbbcecdebdebboecdbbccbcdcbeebbceddbdedebbgbkehbcbbdcbbbhbbbccdcbccdfbnkcdcdccdcgbbfeceebbbcbcbclbcccfbddcbbcbcbdgcbcbngdbhbbbedcbficbbbbchddhdebblfbbbbbbbbbfeembdceecdbedddbidbcbfbebgdfdcbbcgbedbbbcidfdcfdbibebhdcbebegbddededbbhciccbcbdcbcbeohhbpddbbbcebhgbghebfbcdbddhfbbdbgbceccefccjcfbcddcbfdbddbcbiddebbebfbchhebbbbbhccigbbgdccccbcfleefbccbbclbdfdbcccfbdfdiebbddcdcebbhgdbhdbecdtbbcfdbcccbfddbbbdcfbidbbfecddhcbbhdfbdidcfedbbibbkchcccebbgebgebboccckffcjcbebbfbjecebeefnfnfdcbecbgbbbfbbdbeghgjbgecdefecgohbckgebbddgdcbdgfcdbbdbbdidhcdbedbdbcjbbbgbdbbecbdbcdddbbifbbibdbedffebdclebebbecibcccbccgfdbcbefbjccbceebgdddcccddhdsdbglbebcehccbhefbcnehddebdgdjebbdbbicfbbecfcdcgbdgbcbdbbngbdibbfdgfcbdeebebcdekcfbficgcgddffebehbbbgfdbbbgdeddcmdcehdbbbccbcdbeijfbbdehecbedhbbflngecibbbhbfbbcbgcgceffbbbbcgbjcfbgbecbbdcbkfdrbdbbecfcmdbhbbbbiddbfbbbcbbbeckeecbckfbfbbbiccbkfcbgicbbfibhbdcfbeifbgkdeldkebbcdcefbchgdcdbhleevfcdebbccbbbddfcdcbdbccjccibecgccibckddcbdccfbdbddbdcbbbbbdfbbdcbjcddffcgbcibcedclcdccddebbfkbbcbccbmcbgbcdkhbbbbekbddbbcbpdfdfbgbcpcbbfbbfbbbeeckbibcdfjdcdcfcbgbbdbbfbbobcccdceffbccbddbbbmebfbgcgibfcebbbqdlbhcbmgbdicfbbgbcceeedfkdckbcdbfcbdfedibjfebcbdchdicbbekefccebdcchbchbcddbiddbdbdebbbccddbbdgcbceffobflccchgccgbdbcbbbcbbbcbcbibbhibjbebcccbblcbcdfbdgdcgbbfeecbgddejfcgcecdcbddccccbecfebecddfdfbeeccfdfbfclfbbbftdbdbcfebbjbbdbheefbmhfkbbbeebbcbbccejcdgdjbbbcfbdbdcjdeddbcddedebbfeclbfbbhncekeffcogbbbfdbdefbgcbbfcdbbebcchbbjbcbbecfbdcceeibbccbefbbdcbecggbgecgbcgibbblbccechgjbngelqchfddmbccfbbbcbdcehbbbecdccdcfeodbjlbdefedebfebegcbdkfgbcbbcdkrnbcfefbcefciddbcfbedbcgccbfbbmdcbcgcbccbecgbeecbkfdcieddfehbdceogjdceeccbdgcebdcbecdcbebifgbbidgdhcbfgqebjgdcbofhndbfbbbdbebfcccffcfddecebbbcegbcbdbbbgfcceecdccrefcbbcbebbfrefdkcbdjecbdbdcbdbgcgdegdchcdbcijhbddbbddddbeddfbcbbbcbbcdfebibebbocbbcbbjbbbbdbchcbhffbecemcbbebcdgdbdbbfbdcbefdkhbbccbdbbfbhbbbbcdbcfecgdccdbbbiccbchdbebbcbfccdemggbbbfcdccbdidbmcdiccghebbckgdbeddcebbbbcdcbbbbcecbbefbbidglfqgbbbfdbcbhcbcbbbbbdbcmgjefbbicgccccblcbbfjddbbbbifeihgeelgciebchclfocbebhbebhbchbefdcbbecebdbfbddcbeicbdcebdfecddbfdfcbccddbbdbfgbbgbddfckbbdkecfbgbcbcbdjbcbddgihccddcbbcbccbbhdgfbbciiddbbbbebbedbcbcfdifbebbfbbebhnbbcgdbgiddgbbchdebbeevddccdebbckecefdcdiedeiebeefbbbeeefbbbbbdbdbdggkdbcccbibecdcdbbcbcbbddbbbbbcfddkhidcccehbcdbbhgbkbfdichhfbmdbdfbegcdobdbcbdcdcggccbfbbchfccbfdfbbdbbgdccjbfbfbfcbbcecgkbbcdddcdcebbbebcchdbbmdchbddcbeidbbecbcchgbjccccfedgdcffbckcbgbdbedbgcckdbcccbfbbkcbiddhbccfbbbcdbebecbcdgbqmcbbcebccfkbcgcbbdhbcbcbdecdfbbbfcfibbbcccjbbcebbhefeifheiebeekfbcbbbdfcefdcfcbjddbbebcbcpbqfccjbfbdfgebbdgddbfbbecbgdebicecddebebbbdebebefbbeciccdcdcghfhdbbbebeejcfbcbebbbbbbhcncbeldbbcbcbdccibecdbjfbbcbbbbfbeebbdcdgleebbebdbmeccbbdccbddbbceedbdcbddbcdccddfdbbbdibgbbdfdbgcidgjcedbbfebbbsghgcdcbedbbhbckbbdedfedejcbbbcjddhbfcddmdbjdfbebbgjfjgccccdgccbibkdcbbbbjfbleebcleddbbceeddhbfdbddbdkebdibhdbddfbddbddchbdffeecccdhbeibccbbbibbbhbbbcjckbffgccebjebbbdedeedcbbdebcbdbfjclhkcbdcddhbhdfdbbbgebdfcgcbbgdbcbbbfbebeeighddfbdddecbgbcbgbbkcdecdddcbebgbebdbccbbebdcdehdbddiicfcbbbbbbedcvdkeeddcebcccbbcgmbbdgegcjeebbeddbiccbdefccbbbcbgcfdbggcfcdhdcdefbfbbbbcmbcdebhehgccfebbbebbgccigdebccbcecckfcbegdkclbecebecddgbchefddcibekbemgjcbfbddclckfbbibcfbbcbbdcbdecgccbbbccecbbcfcchgjcjjbbfecbfcbcbedebblcdficbgbbgfdbgbggbddbedbbddgdbfbbnbbdbebbcgbhbnibbddfgiidlbcbbhgbcbddhbgccdhcchbdciddbdbcgbekghbdecjddbbcbbibbcbbfbdbcdfecbedccebdcefdcdehcgbcddbhfeicfcccbfbdbfcccccfeccfbddcbcbgcigcdbcdbcbrbbbfcccefbbhcdcddbcbbebbbcfecdbecfbfobfcbecbbcdmcefebfcfbbbedfcdbbbedbbcbcbebccbibjbdgdeehebedbhhcbfejbeibdbccdcjcebbcbehgkbmcmbhccdcbbdcdgcchcbbfbbnibemccfbcicbbccfbjcbdibffcbcbebcebcccdcekbbfbifibdefddddcecbcebghbbmbgcebceebbbbcckceccccckidhcbbbbbddccbgbcgcdchlhffbebeibgdcbgfddgccciebccdcccdbjbmccfdcehlbcbdcedccbdddbbclbcdbbkecbbbbdbcrbchncjcccbghfhddcfccbbbibhhbfhbebdedbdbghbcgefbdcccidbbfebbbbjbbeeebbcgddgccebcfdcbbfhfgcbeddcbedekbbdbebbgcdbecjbdbcbdcfbebdbdehbcdbbecbebfdjcbbecbehghigbbcecfbbnbfcbccbebbhfgbdbcbfbcdcecbmddbcddbjbbklcbdfcbgbbdbbhbcbedbbcgbbbbcbccbbcicdbgecfjcbdmbcbbhbdbdebcbgebdfbcbccfbdccbjbbceckbbcbbfbhbfbjlcbdbfebbcbccfdbcblbbgcjdeedcclcbdcbdbebdbcfbedecccbfbdccmfcbbbbbcgcbbbcccfbdbefgiicffbbbbqmpgbcbccccbedchcdbdbbbghcfbcebddjcgdfecffqcbcccfbbebecdhecccdcbgcckbbfbhccdbgbbkcdbbbicdbcdbddbgdibflhbdccdbebfbbbbcdggbbdehbbbbccbdmccbechbbccdgcbbcccdccigecchbbbdcbcdbfccicbchbcibeccdkdcbcbchcejdcdbnbbcfdbdfbdhfdbbebbddbebhegodbbbbebjbcbdbfefbjicbbbbbddedbccdeedbcbdfdfcifdhfdgkejkfebebcdbcbdbebbbbfcebfgbbdfcccbkbeebhicbdgpcbcbcegjddcbbibcdhcgdehddclcbdbbdbndbdecclhdchfbcfebbbccbbcjhibbjdfeecbbcfjeddhgbcbdgfebgedddcgkbcbbdibefcdbceddbefbffbefjhddbdbbchdbbbbfcfbbbbdbcdjceebcdecccbcjccgcbcebbcbgbdhefkdehbcbbcbdccfbfdccgcbbbdbebdbccddgcdbbcddbebecbcbibgcececfdeclebcibbbbfbfcfgddkddbgbgbcddgdcdbdgcccceecdbbfccbdbbebcbcehccbbfjcbdccbdbcdccficcdebcchokckkeccbhglbcfcdfbdebgbfcdbhcbbccbgdcefbbeedcebfbbbbbcbfefgcbbelkdbbcfhbdbdecbbhcbbfhecgdfbcifeebbfbfgfcobbedcbbjcjeclhibceofdchchdecdcbhgefghbblbbhbdclbfdfdibcbddbbjkgeibibchgdfbcbcjdbcgdcbbebbbbccccefcfcbbbbbebbecbdhbedbbcccececdbgbfdcbdbdckbbcbbdcbbbfbcbdddbibbdfcdccbcbcchcdcccbfbbhdbbccfbdccgedccedbbdcccbcdbdbfbecgjbcdbebdcbecbccedbbidbdebfccbgbckembccceebbfbbbpdcfcbbcccbfdbbbbigbbeebbibchdbclbdbbeicfcebfbbccdbblhbdrbbfjbcbefbbccbfdcdfgbfbcdgebcbdeceblkccgbccbbbbdbbcbfbbdcccbcdbbbceccebdbeedbbbjebcgbdcegcbgddccbcdcdcbndbcebehcdbbgcigbcdehbbedecbdbfbegbhdgfbdcbdbicbbbdbjbbjjdcfbgddhgefbbcbdjdcidcgbcdebbbbcbceechedecgccbccfccebfhcdedbbcmbcgcbifcfibcijdbbcfedbceedgcgbdobffggdcbbddcbcdbfececbbcdbbbddbbqcbbfgebdbbbcefccfccfbfebgcbcefcbbdcbbgcgbbccbkbdccdgbbecjbccbfbgcbcghbbdcbcdkdcfbfgbcldcrdbjcccfbfgbkcdbceecebcbdfecbbbcceddcbcbcbcdbcdfcbdbdebdmbbdeblfdcbfdbbgiccchcebeedbenbfecccggedbcdelbwicdbcbddbdbgksbecefbbcgebbecbjdbcbmcheccbdkbdfecbgifbddbecbebdbcbbceddbjkfchbdbebbdebfdbbbbbcgdccccdbdddcbcbkbelefecgecbbjbccjdccbbfecehbbbebbbibfbjccdbclbcceceecbbejbcbhceebhcdebebbecbhbcfbddcebdbbcemcgdhceefdebfcggchdceebccbceebcbbddddbbbdeeecmddchbcfdebdcjcdebjblbcciddceecdbbbdbeebbdcdieedceebjfcjfbbbcbfceebbbebebhocfcfgijbddicbidchbelbenhgbicbebgecbcgbbdecbeekbfcbfeddcbidccbbdebbcefedebdkbbcdbckceggedcdecccgjbgebccddckcgdebgcdbebbjeeecccccbebhecbdhbhqfbdbgbeecdibchbcdebjbfdecbebibfecbdddbcecdfceddeddbbdcedbccjdbbbbcfbgdibcbbfdiccgdebjebbdcdcdbbbcecdedfbfecddcdfbdbcbcdcocbebckccbbeeccedffcdbecdfbbgcbcdcbcbfdbegcebddddbgbekcdbcbjbiibcbbcddfiebbcccjbgfcgbbecbbeedecfdgcfedmbbgbcbbcpdeecgbhcgodfbflbkbhlbcffcbhbeeedcbghbrbbcbcbcegehbiedcbjcbcbdbbbbcccbdgcdfdfecchdkegbeccgecbecedbbbbfbchjbdcdibfcbcjbebbdbbgcggcddbddddccdeeebbdbgqbbbdbjbfdbdbbcefdbcbfhbggdbdhbmbbcecBbhcbbdhfbbcbhjclcedccedelcdbbibhecdbfcchjdbcccccfbcfgeddchdccdbdbhefbdcnccdcibbgdbficbbdbbgdbgbdffkeicgcqdgbbfgbcdbdlbhfeebdbebdkbjbbdfbdbdegbbdchdbbcbdbbcbedgbkchfcfebdbbbccdbbcegjfbbcjbbblgdeccbcedbcffbecbcbcbcccbcbebbefcbfibcbgjebibdecbbdbcdebbbcbdbbccgcbdgbbfcdkbbbfbcblccdebrbeebbccbebbddbfcccgdbebddbebbcbbhcdldbdcccecdccbbfbccbbfdbdebcffhgbfdckbejkccigcdkfbbbebdddbcekebdebmdbbehcbcfigcdcbcbdpbjbbdebbdeccbbbcdcbcbidgibbeegbbdfffbbbcebfbebfcbdfcbbhecdebecebcbcdfedbbfgcebdbghegccbccbcdgdcecdbcbbfcbdbbcbbbcbbdbcbbcccmcehbcciembbbbfcciccbbidfbdbibblgiibcdebbbccdlbdcbccdbbbeebbidebccbcmbbcebbbcbedcfbcfgebbdbicbfdbhcbebbcdjbdcdbcbccbbdccbdfbdccbobmiedcbbbcdchbfbkdebbefcfdebhkdchdgdieecddbffhbbbccddebiecdbebgfbbjbcbdlbdeddhfgbbdbcebdcgddjbdcbbghgbddeibbcccfpefdkcdhqbgeecbcfbieedbcccbgejbbhgjgdefbjbkcmcbcebhbjcejfgcbgbcebdebeebbccdkebbbcbddbbjddcbilbhcbcbbgebkkbebclbdbbccbkgdcdbdcbcdbdehhnfeebbbbbcdcbecebcecdgcbcbedbcbbchbcchlghldccbgcbbigbfddbfeffdbhdefebbebggcbecbfckgnhcbbcbjcbccbdgdbccdfddbocbbfeehchgccbbfbeebgcbcchbedbbbbcbdccidbefbbdbchcbebbbjchddeebcfbbbbdccddgddcbcbcbhbbcfbcebdiedoecbfcbbchdbddjbbgbbcbccbcbuedeebiekcdbceecbdgcibdcdeefeccgcddbibdjccdbnbeccifnelehgcbkhqhbddbdbcdebbibgfdebcjcbccccbldpbebbfdgbbbiecfebfhjbcbcdfbbbiedecbcdebbbjkbfbiebbbkcbbhdbbbdrjbclhggfcibbdcbgdbgbhbcbebcechebgcfeccdbdjbgbbcdbbbfbdbccsdbgjbcjfbcdldcbnkgbfbbbbbbcbebcccbfgebobdcibcbcbbcekgekcbcgbbbbbfgbbbhibboecbccbcbcbelcdfedgbdbccdcckffgbdeeebcbiibdgfbfbfbbfcccfekkbbbbcbidclmcbffrecbcdcebbebebiecgbmbceccccfiebcjccdbcbdfbdeddbblfdecbcccfbbeddhbbbbceebcfbbicbeccgdbgcccccfbddcdfichfebedebbbcbeckcfbccbbgbbebbdfcfbfbbdffjeccdfbmhecddcicbcdcddfcefbbdbdfddbcbgbbhcbcgjddbccciccfbbfdffbcbcbdbbbdccjeebfcbclbceehbecgbbrccceddfcbgccebjedbcbgbdcffbfgcbbbgcbehdhjbjfbbhcbefdbfeccjbbccfgigdbbcfcecbeedbebcjcdfbdbdgefbdbbbbfbcebcecdtfbbdiccccegfcfbbfgdedhbbhbcdbfcbcbccccedddeibkhbqbecbdbjpcbfgcbbebbcbbbcfedbcfbjibbbebbcbfdeebcbhicccccebejgcchbjbddbefcfcjhdbffcgcbbbeibddckfbdbjcgchdgeibhbbefchjbbbccbbbfbeebcccbbccbbdbccghccbncbdbcmbeebdedccbddeddhcbbbbbdcchcifidbchkbcdcbbgbefbbjebbcfgbdcdfbbhfdbdccdndbcgebcfjedddcbbdbbfccnhbcbirbcgdcbdbfcdbfbccjcddeddhdcibfccebbcddldcccbbbcccjcbdcdebghcgfpcedcdccfbecebhbdcdbcddgcbbjbgdbdgeecbcehfdifbcbbfbbccbbeebdlebbceibcbbcbbcbccgbejcchddeccbdcfbdcbjdbdcbvcbjbddbfgfcjbbdfmbbscbbdebbbbdcdbfbgfedbeibebbdbocbfgbeefdifchtbbbbhefcdbqigbfddibbbdebjcdbhbcbhfbcccecbddfgcbbicfbdbbfhbcdcgbbcgcchgdbhfddkibcbdddbbdgcfbbbbcgcdbceefbbcchcdedbedcjbbbbdbchcbdedccdcdlcccccbcfbcdjbgbgdbcbebdbjecdbbbebhcqbcbfcedeeddgedoccgcbcjfbbdbhcbcfdbgkbecebbcecbfhcbcbehccbfdgbffbhcfhbbbbecbbgimcgcbebbhbbdffdbcebdbibfdcbibcqcbefbbbcbbbedbddbdcbcbbchbcblgbddddbfbbefebdbgdbbebcefceddebedbbbccdbecddkiccgfbbbbjgbedbdcbbcfbfodccdedfbbdbpccdcbqccebdfbefcbfccibeccbjbecjdcbdicbcmdeddbbjbhidqcbcbcecfbgekfmbcfdbjbbbeleecfhdbbbfmdgnbcgbbdbckhcedcefbcddbbccccfbbbddbdebcbchbbbbkhbdbbbbcfcbedbcbcebfbhbcbeemegfjbjbhdccbbdejdcbdlbqfcbbbbcddfcbibddbdgbijdbjbdicbdbbdfbebfbbcbcbbfhcbgpgfccebkbcbhkefbcbbbbecddbdgbcecbedbfedbfkdbjbfdicbeeebbcnidbbbdgdbbcbcdgibccihddccbegbddjbbeedghdjdccceccbfbebfcbcjbiccfecbeedbeiccdbbfbeedgbcdbdcccefcffbcddgfdfccbcojbfdbcbccdfcbbegelbcbcbgdbcbcbfbjdjbebbcbgbelbbbboedcbhecfkcbelbdnbcbccdibcdhcbeciisbcdcedhcceccgibgbbdbcgbgbbmbbgcfbfhcbdcbbdhcgbbbdebcbkfcbdbdbdghdbbbcdcddebbdccejbdcbcgbddcghbcdbceffbbbnbfegebcebcdcbfbbfhfccbbjdbclbhfgcebbcbibeeeecbfjbddckcbcgbcdhfhbbccchbccdhffgfbbbeefcdecbbcdcbbdecbcbdbbfbbbbcdbbdcbcdbdojcbedddiebfebccecefbbcddbccdldfdbdehchbbjlbcbbbgkdhcddbbiebeefbhlbfcedefbdhcedbifcbcebfcfbecbbbcchdcbcdcfggdfdbgfbdcfbccbcdgdbfbfebddbbccfdcfblbbeedciebdhbebdlgdbodbdhbhdddcbbbcbeeccbhdcgdebbcechcgbfcbbeiggbdbbbdgdcdeeebdbgcdefbebehdgebjcfcebdbdgbbbecpbbfbmcccngbcfbgccecgcbehecbccebccbfhbbdhgcbibcbdebcbicdefebbcbbbcgbbebbccbgccccmdccbbecbdebbcbbcbdebbfbeegcggbhbcdckcbcbcbbfbebbbdcbhghceeecbcbfbffelcbbbbeddjgfdcgdkbbdebbcecccdbecghpdbbgjdcbbfcffbdcdbfeednbggfchifibhbbbfcbccccbbfdbcbbdgbkbehbecfffddcdclebdcbebdccgfbhccdfebbfdbehbdecgdecbcbdbbbefichhebcfdbsbcccdjbedbdbccecdgbhgccthbdbbecfbdicccfbbckddbeidbfebceeccbdfdeebbbbbdcbehbbcbhfgdccbhchbceidcdjbmpcbbgbedfeddcbbceeccgdbjccehcbefdbebecdbjdbdccibbebcceccbjbfddbbcbbbddcefcbbbfcccccmdbhcbeeccbgbedbfkbebcbbdbhbbsccbcfdbbbcfdehcidbcbbbdbbhdbdbbceecbgbbfbbdddifbeccdbedfbbfbblddigecbbbbfbccbgcebbbfebbececcbdbcbcbbcbgbcfedbddbdbbbdbedcccfcdgqccbcbbgcbbfdcebknbdhcecbbcdcccbbegbecghdlcldbbbbbcbbcbclbbfbccbcbcccbcbdbeccbcbeelccbkffbbcdchbebdebbbdjbciceeblffchbgebbbcicbbdedfckcgbcdfbcdkedddcdejgdbddbbhbkgeebdcdebbbhhcbccbdbbbdgihddcckgcecddcbdbcbedebcfddgbdbcebgcbbbbddecfbcbebcebcgdhcjhbelbfgfoeedbcbcfcdecbcdgdgdcddgcecfbcgbgifcidbffbefebbccegdfecfhcfedbbchhcdfbdddldcbfecefgbfbbdbjffoccccbeeeeccfdbdkdbfedbbifbgpfcbbgcbbbedbcecbkgccbdbcbddbbeidcbdebekbedbeeccbbbdcecccbfdcfjgnefheddcecdcbiddddcedqggbcbgfbfbbgfcdbbbebcjccjcdbgffbkbcfbiepccdeboddkcccicbhbdjccfbfdbcbcfedgececgcdcdibdidbikeedbcefbbbceccccbhdedcbbddbjeccbmmbfofbccecbhcbdbbhbgdbefibhedbcbddhbfcgbbbgcdfebfdcecdcdbccbfcbbbbdbbbdckhbrkcbdnbfcccfbcbbddecddffidcscjccqcebcesbbdcddlcbgikbdbbffbbobbbcbflgcdcbbcbebdchbbccbbbebbcbecbqdcdeedebdfcdngbhdhcbbbfcbcbcbhbbbcbbfkhbfgcdlbgbbbkehbbdbbobchcbmdcbddbfcgfgdbccddideigfeceddebdbcchecbbcbfemcbcbbgdddidbbcdhdfgejbdcbblbbekdbhbbcdefdfcdcbkbfbddcecdedfccndebccebdbbdbdkgehffdbhgbecbscbdcbdgfcbcbkbcbdcbbldhhbbbcbdbgfccbcbbcfeblddbfeelbebbfefccebcfbfdcbdbehecccbehjbbbibdbgfecfbgdbccjbjfgddhgbdbhconcbhcedcdbbdbdcbechdgbhcebebedbcbbbcdcbkfbcgbnddicebhicbbdbbebdgbddebdcgfbctjijcggbdbbbccfcbhcbcbhccfhccbbbhbccgecfbbcbcbcbiidefbmcbgbbegbchcjbbeebbebbbbhlcehiddbddcbeedfcddgbccbcbcbcbdbecbfbcbcbbbbdengecddgdcdbihebbjcdhihfhddgbfednbbbcbbebdhbbcdcgbeblbhbebcbbbbbggcebebdcbjedbdbbfddbbifbifqbfedcfbbeefcekhbecbccbdedbchdibicebblcbgxdbcbefbfedbdbcbgdddgebficcdbfcebgbbedecfbcccegdfcbbcdbfdbbbbdbfbcbcbfdccbcgbbcebdcbdfcgfcbcbfcbbchcbbbdeqbjmceebecddcbgbbbdbbibcbdcebeiebfeebceebcgccibbccbgedlhlbbebgbkdefbddccjdbefccfbbbdccbbbecbbblbbbedbclcebmchbcbhgbcbbbdelbbieefbhdbmifcbdgbebfcbdchibeedjecobbcbfcchbdcdbcbbcfcchgclibbccceecbcgbgbbbbdejbdjebcbcfbdbdblcbbbhbhfcgececbchfeieccbcecdbiecbgcdcccbhgckbcebdbfbfebbdkgccdicdedgbeccmtbhncecbdfeehecbcggdhbbfbfdefbcbbfegbkfdjbcffobdbeccceddbbbbcbggbdcbcfcbfbeegjobfbbbefbjgdcbbeecgnicbbeidcbeeefhcbdcfbibbbibebcdcgdfbckedhcbiehcedgcdbbbbecbbfdbbfcfeebgccbebdcbbgbkcdcblcebbfcgbcdeccdcebdhcgbcbcbbeebbfcbbecdcebfbcdbcducdgieeebfdceddgeccbdddcbcfcddcbbkbcgdbpbbdcccdbbccngbbebjcccbcbbfbccbchdccdgbdbddcftddbeedbcdbwddddfhchbbkbfbhbbblbbdcbcccgdeciceeccdcpddfebhdeeccfbbjcelcbebbccdbbbddbhbcgcgebfecbbddibbbccbbefcedfbedddbgeefbbcfbfdfbbhccjbbbbbkdieedgebbebbfcgfcefbhhfffbebdfbbccdcjhcdddcccbccdbcgbcdfcecbbbbbbfcedddcdbcbbgbggmecbbdbdfeecbcbcdbgjifedccbcdbebfcfebcgbbbmbdccibbdbcbbcbbcbcjcbcccbcdcdbefbciededbbciedifhbjcccbcfefeedcgmdqebcbbekdcbdgegeffdbebheccccbbcfbbccbdhdjcbbbhbcbdfceejbdbbbcdchebbbdeclbgdebebdcdbbcbldeibbcgehbcjbbhfebbfedbbgbcfcchecedbdbfdbcebbkbgecbccefeddvbbcdmbdhlmdbcedbedcfgebcbdfccghddbbhelbbcddcbecgdibhgbbbdhctdbckcecefgbbbbfcfdibfbbcdeddgbbhbbckeccbhbbcdbdfhbfcddebgibddccceebfkcbbdddbfbccfddbfbfbbbcecccbcchfbbbbbdhdbfdkclbbcebfbebiidejdhcbfieubbbbbhqifedebbcgehdjdbbcficeebdcbebkbedbcbcfebgbddjdbbdfbbccbdbcbfdeoceffffffbbcbdbikgfbgbdkbcbgbbocdbfbcdedhcddbedbbbbcbdclchdebcbcccbenddebjebggdbcdehdjbfdcebdbcccgbgdbbffdcfecddbbccgbgcbcgebpbcdfcccbiecddhbebbbbeddfdcdbccbfgbcchebbhbfifedcbcbbbehibfbbdcdcbbfbbgcebceecbdpbbbgfjbhbbcdlbbedbdchkcjcebhcbbbfjbedfkmdbcdcbbcbbbcchcbfbgebcjdcdcnffcebcjedcbcgccfibfbbdbfececdfddcecccbbddedfbcdhbecfdcbckdccgfbbjcbbcclgcdfbdbcgccbccdebddhcbbflcbccbcjhcbgdbdeibbcdfbcdecicbcjbhcdrbccbebbbcfdhfebbbcbbfjbchcscdcddbcbddfececjkbfcgecfembbfbcdbbcegbccdeedldgbemccbbdbbccbhceceghdchbbgedfbccpdfcgbbfgbbebbddcdmcbbccbgcfbbcefhedgdcccbceebbfcbbebfccfjcdbcfbhpebbbcdbdbbcfeffbedebbhfbbchhbddefdfgccfbbcfdobdheibbedcbbgebbefgbcebbbicicbbdceeccfcgdbbdbcbmcebcfbcfccbfbhcebcbkcbgbdebgeccchcefdcgkfbiccbbbdbidebbbfbbhbbficbbjdccccfcfceccccdcgkfbbcbecffbehdbdccecdbldbfbjblgcddibjfebgfbfdefgccbceebbeeedbefcffcgdchgbfhdbdcfflbepcebkedehbgbfgbbeebbggfhfebbfecbcfccebebgcdcicdbhbbcbeebbbeiccbbhebdgbbdbcbcoeeebbcbkbfdfdcbebqibefhlfbfedddbdcbkbcbbebgddcbdbcebcedbbbbedbbbbbdbdkbjdbbbbcjgbckllhdcdcmhdecbecbjgebbbedmdebhbbfcflebffcdbecbbcblkhbbgicbcbfbcehcbbgfbdcheeccgcfbejegedebcbcbdbicfcbcgddbcdddbeidbbeebccbbebbbddbbbflbfkbbbccbdbdbhcdbfbbbedeececbddbhmdccecccbcbhbbbdbfcdbjcdcbdccbbggegbjbdnchdeceedccfbbcebbcblebbfbjgdbcbsfdbbdbdfbbbdcfcdibgcbgjdeeebgdfehbbbgfskcbddcbbcgbicedfeccdbdbcdbdnbbfjbbbccfhdbbbkbebfbbcebfobdccbcbcckibigfdbgfeicfcbcbcccecdfcbdggikeicbcffhddccehccbbcgbciceckceeifcddbhkebbcbcccbcbcbcbgbcbbdbbbbdegbdbgbbbbfbbfeccebhgbcfccchcbbcbedccghdbdbdcbbdgbbdcocdcchdbbdfdqcbcbfccbdfgbpgegkecbbcdjicgdbeegefbbeddedefcgfickcfeclgbecbddcfebbbchdcbccbddnjblcecbedfcbbgghlgcddfbdbcecbcecmcedddebcdgbfebdncbbecbfigbbceedbbfbgbebbjccbbgcdcobbbjbcbidccfhdhcbbgcehhceehgceeecefgmbbccdfbcichbdcbeecjlbidfcebhbdcgdedhdbcbfbdeeeeeebbcbebbcbfdffbfcedmoebbbddebebcbccdbhegbbecgbbbdbfebefheffcicbeddebebdcgefhfkfcdcbfhbiebbbefhghgddcbfefbbcfgdcbcccgbcdbeclbegchclcbgngibbbbdgbdccedjebebbbcebcecdebibbfcbiebcgcbddbhckebdecjfededdbcccbbgebebccfbcdcgeddhdegibkfdcggbdddibdfffbdecdcdecbbfedibbjfdbjcedfibdbcibbcscfekbibdbebbbcbfdbbkjcbdebcbcgckmccghbbgefdcdgccbcbcccbfbdbfbgbcbibhcbjcdfpbcbfhfffceceeegbbbcjdeckedcbbgcdcccdbdcbcedbehbecbdedebchcccdbbbbchbbbkdbcbckgbbcbfddlebbbchegcbggdedbbgcccbbdbccbehdgeddfbdfgbcdfjchebbegedbcddbddbggbcbbdbdlebdfbbbgcccbgbjbcicdbbdcdbefebccbccdlbgfgincebibmdbdfcebcfbfcbbbbcbdbdbchbigbcdjbcbbbcbcddbidccgeihjbcfcdbgdjbccdcdcfebdcfbibcbeidbecfdbibbegdbfdbbebfccbdgbcdcgcbecedbfebbgibbebgcbcdbeddededbbfdbccbcgdfceecdcbfcjccfbcbcmgbdbjghcddbghgccfbbegceecbbcgbdcbbbcbcegbhbdbbbbhedhhfbbejbeebchfbbbdbchdfgmcfdccgfeccbdfbbfbgbccbbbbdbemlpbccpcbgbicedfbfddbbhgbdhdbbdhbcbcgbccebbdcfbbbbebdbcecdcbdbffdbcdbdfbdhegbbdfgmbfbbibdefdbbbecdddgbcbbdbcdcdgegbfbhchcbbfgbcbbecibecbcbceebcdgcbbbbcbfccdlddfcdbgcckdbdjbbcccedebfccbcdbbbbddgcdgcgbbdbrcchdcdbcbdedbfbeebiccdclblbcbbhbiccblbbceflbcdgcbebceddjddbbcdeddcddfbecebbcedfdfeddbfbcbfcdjdbbfbbdgbddcbbehdckibbebbccccneiebfbbbbfdbbcbebebgddbcedbbheddbcdcbdbccbbcbdcbcbbebdbedbgbbdfdceebceddcbbecbbfddcgbblbcifdebdijbbbdcebgebgbbgbbfbccddcdjcffhcdgbfcbedjfedbfdcdgbdcbocccdcbcbddekibfdjbbcdebgecfcbdbgehccdebbefcbcbbfjedfbdbcbedbbebcfdcfccebdiwebbdcdccddedkehdbddbcdbdjeckbbbbbbcjbpcebhibdfbhdbbcgbbfbdcbcbbbebbeiodgccccfgcbbidbfbhfddbhddfbcgbdbccbcecgdcdbddhibcdfdbcdcegbeddfddfbcebbcbdbdfbcbdccfepbffbddddkbbhcedfbhbcebedddeibcdbcbdbdbcjdcbbfccefcfbbbicfefcchcgeccdidfcedgbccbelfebelhcccbfbgcbhhbbdbbbccbbcefecbpbckcebdbcfhbbhcbecgcbkcbbhddcebcdcbccdbdbbbebhhcbfhcbcbbbdcccbibgdbcoebdcbgbbblcbbbbfbcicdecdcbfdbcccjcbccebbccbbibbijncbcebcgcbjebfeflcbbebeddckbbbcebhibbebiiccpbdcgchfbcdcccbdcecbfecbdcjdchcbcbcegbeceebbdbbdbbffbcdgcffbdeecbdbbbedkbbhbdcdbigdbbbdbfdiebedbbfhbbdebebccedcgjbdbcdbcchbfbcdicfdedbidgidebdcccbcdgibhhhcbhbjbdbibbbijbcdejdbbcidecjfbekhdebqdcccebdeenbfccdbchbbcgcbbdfhmbbfbdccbdbjbiicjbfbddcccgbfgbcbeeecdebdcpbddbgbbcjjbccedbecifdbbggdebkecebcddghbcbbcbbeeddeccffbcccbgcbgbeeccbbgbbcecdbdbbdgfdhckijffhcjfbccbeiecccdbfbgcbdbbefbedgdhbfdddecgdbdcbbebjbbbjfgeibgfcbjbbejdbcdcccbgdddfbedbnfdcdbofdbbcbcdcdbbgbbddncdpdfcbfdcgeedccfbcbbcbhbbdgdbdcbedbcgccecbbfedcbdbcccicegidbbddgjbcbifcefbejddbfcccjhbehjibbicegbcbebbbcceebdkbfedcdbebicbbebbeccbdddbjbcbcchebhbbdbgcdfbbebbccdgdbcddcddlbdjfcieebdbihbodjcecbcddcefhcbffgggcggbcccdbcceeibddjeehbcddckbhdbgfffdcbgbfhfcfebbffdfgifcbbfbebbgbbedkecbcedfbcibcdeffdccbgdcbddbccbecdiibbdbcbcdfebgdcecgbjkbbbgcdnbbbgbccbcbddedbglbceecfcbedmcebchbbgfcdchgimbbcemlccbbhbbgbcebcdbddbbgccgdfbccbbccbdbbebbfbdcbcefdbeeccfbpbelkdgedefbdbddccbhbddcgbbbbcbcbbcfbcchedffcbdmbebccfcbcmbbheefbbdilbcgcbbdhbehbcbbdcfcfifbcbbbdfeegkhdebedbcjjdedfdbbdbdfbibebbfbbckcdffdihbebecbfgbcecbcchbdibbhgbbcbbcbhbcbhdhdcbdbcbhcccbebcfdcbjegcbbbbbbefcbgcbedddddfgbbckdccgbfeebcdcbkccddbeicchgbbdchjbcddbbfbbnbbbbjbegbffdicdbbfbecgecdhbdbbecbhbfdbbbebcbbbdbbjblfbgcmdkdgcbdcbcdfccffjdhebbcbbbgcgccfbcfcbcjdbdibgbceicbeeccgecckebgfckhdcbfcdbdbbjcbdibcfbbecbfcejdebbbbdebmeebbcfcbkcfjkbidbcgbbcbnbcccecbbdefhgfdecedbbecbdhegcdieebehccbbcbcdgcfccebebbcchhbebcjgefbgbdbdccecebdcfbdebmcdhebbbcjbdgebicgdcdbbbbbddbcjfbedbgcfcibbbcdbdeckcibbcebbbcedcccigcccbfbcecdbefdccgjdgdddcecccddcbcbffbdbcifhgccbbcgbbbccgbbbgcbcgcbbgdcfiibkcfemibbdcceecffdfcdbcmfbcbcebdbdgbbebcdhbcbcccpjedgbbcbegcccbmbpbbdbdgcdbbbbbggebccdfbcdjfbbbbbcudfjcecccceecbbebbbbddbdcbdbbbdiqjfddbedbbfcdbdechbbbckbcccecbbbebedcedddcbccbgdecddegbelbdbcdcbbedbbbgcgdefghbbfbdcgcbicibbcpdcbdejggbffddbhbbbgcdbhgbgbbbbcgdgdeeebdfdcbfobgdcgmcfdbbccgeehbbbcdffbcccdfbbdekbccbgbibcebemedhcddcdedcbdcdccbbccdmbbckcefbbcegbbibbfbgiedgmcbbbcdehcebfcegcbcbbbcbfbbbbbfeibegbfbbcegdbbchjcbbdfbcbdgdbbcoebbgbgefhitmkcbcbdcgcgdcffdbbfbbbgeccdbebendebebbbbccefbccpcbcccdbciciiccmedbddcfcicbceddbebebedhjjeebccdejccfibhbbbdcbofcbcbbdbbkddgbbfkfjbcbbcbbcedbecgbbcemcdhbbgcecdjbhbecfbfnhdcjkbbbcfcdbgbdeciebbbfebdbbbbccdfddfbbhdbbkccigbecdbckcbebfcdcbbhbdgbmbjbecedccrhedcgkdbbcdkbebcigheeccbcfbfbcbdcjlfcbdcdjbdbbbbibbbdfcdbpcddbbbbcbcfbbccdmfebebbdgfecgbcrfbddbdcgfdiicccdbkbbddbedceffgbkccbbdbfbdddhbebbbedcbfojccdccccddbbbhhbicgbcebkbbbebkgcbibbbjcebccfbdbdfdddcdibdcbhkbcbhbcgchlddcefbebfcfccbbnelbedbfdbnddbbcbbdibbdccbdbugbfbebbbekclccbjbdccfbbcsedeceebgbbebcggbbcnccdfgcbfbgcccebbfdibhlffbgbbgehcdjbecbeccdbdbcgdedcchbcdbgbccfccbbcdbebiecccbeblffbhebgbbbbdcbcehgbnbbgcdccjldfcebjgbbcbibbfccehcicbghmbddcbfbcbcbbehecbbecffejbdbbhbe']
text = ''
with open('100k_dwupunkt_p_05', 'r') as file:
text = file.read()
print('unigram_entropy: ', unigram_entropy(text))
codec = HuffmanCodec.from_data(text)
print('3 pierwsze znaki', "{:08b}".format(int(codec.encode(text[:3]).hex(),16)))
codec = HuffmanCodec.from_data(text.split())
print('3 pierwsze znaki', "{:08b}".format(int(codec.encode(text.split()[:3]).hex(),16)))
print('unigram_entropy words: ', unigram_entropy(text.split()))
save_codec_to_files(text, 'on_chars/100k_dwupunkt_p_05_coded')
save_codec_to_files(text.split(), 'on_words/100k_dwupunkt_p_05_coded')
unigram_entropy: 0.9999978659644434 3 pierwsze znaki 01011000 3 pierwsze znaki 10000000 unigram_entropy words: -0.0
text = ''
with open('100k_dwupunkt_p_09', 'r') as file:
text = file.read()
print('unigram_entropy: ', unigram_entropy(text))
codec = HuffmanCodec.from_data(text)
print('3 pierwsze znaki', "{:08b}".format(int(codec.encode(text[:3]).hex(),16)))
codec = HuffmanCodec.from_data(text.split())
print('3 pierwsze znaki', "{:08b}".format(int(codec.encode(text.split()[:3]).hex(),16)))
print('unigram_entropy words: ', unigram_entropy(text.split()))
save_codec_to_files(text, 'on_chars/100k_dwupunkt_p_09_coded')
save_codec_to_files(text.split(), 'on_words/100k_dwupunkt_p_09_coded')
unigram_entropy: 0.4689321918830734 3 pierwsze znaki 11100000 3 pierwsze znaki 10000000 unigram_entropy words: -0.0