moj_zad_3/zad.ipynb

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