From 2590458b1372ca5a9bbe9a8e5a9409df97c5eee5 Mon Sep 17 00:00:00 2001 From: Eveldee Date: Fri, 24 Jan 2025 10:19:10 +0100 Subject: [PATCH] Add day 1 --- AdventOfCode.csproj | 7 +- Days/Day1.cs | 90 +- Inputs/Day1.txt | 2000 +++++++++++++++++++++---------------------- 3 files changed, 1031 insertions(+), 1066 deletions(-) diff --git a/AdventOfCode.csproj b/AdventOfCode.csproj index a698010..17d5e9e 100644 --- a/AdventOfCode.csproj +++ b/AdventOfCode.csproj @@ -2,9 +2,10 @@ Exe - net8.0 + net9.0 enable enable + latest @@ -13,8 +14,8 @@ - - + + diff --git a/Days/Day1.cs b/Days/Day1.cs index 2b01327..b0ea858 100644 --- a/Days/Day1.cs +++ b/Days/Day1.cs @@ -5,96 +5,60 @@ namespace AdventOfCode.Days; public class Day1 : Day { public override int Number => 1; - public override string Name => "Trebuchet?!"; - - private static readonly (string, int)[] WrittenDigits = - [ - ("one" , 1), - ("two" , 2), - ("three", 3), - ("four" , 4), - ("five" , 5), - ("six" , 6), - ("seven", 7), - ("eight", 8), - ("nine" , 9) - ]; + public override string Name => "Historian Hysteria"; public override void RunPart1(bool display = true) { - var calibrationSum = 0; + List leftNumbers = []; + List rightNumbers = []; foreach (var line in Input.AsSpan().EnumerateLines()) { - var firstDigitIndex = line.IndexOfAnyInRange('0', '9'); - var lastDigitIndex = line.LastIndexOfAnyInRange('0', '9'); + var separatorIndex = line.IndexOf(' '); - var firstDigit = line[firstDigitIndex] - '0'; - var lastDigit = line[lastDigitIndex] - '0'; - - calibrationSum += firstDigit * 10 + lastDigit; + leftNumbers.Add(int.Parse(line[..separatorIndex])); + rightNumbers.Add(int.Parse(line[(separatorIndex + 1)..])); } + leftNumbers.Sort(); + rightNumbers.Sort(); + + var totalDistance = leftNumbers.Zip(rightNumbers, (a, b) => Math.Abs(a - b)).Sum(); + if (display) { - AnsiConsole.MarkupLine($"[green]Sum of calibration values is: [yellow]{calibrationSum}[/][/]"); + AnsiConsole.MarkupLine($"[green]Total distance is: [yellow]{totalDistance}[/][/]"); } } public override void RunPart2(bool display = true) { - var calibrationSum = 0; + List leftNumbers = []; + Dictionary rightNumbersCount = []; + var similarityScore = 0; foreach (var line in Input.AsSpan().EnumerateLines()) { - var minFirstDigitIndex = line.IndexOfAnyInRange('0', '9'); - var maxLastDigitIndex = line.LastIndexOfAnyInRange('0', '9'); + var separatorIndex = line.IndexOf(' '); - var firstDigitValue = 0; - if (minFirstDigitIndex == -1) + leftNumbers.Add(int.Parse(line[..separatorIndex])); + + var rightNumber = int.Parse(line[(separatorIndex + 1)..]); + + if (!rightNumbersCount.TryAdd(rightNumber, 1)) { - minFirstDigitIndex = int.MaxValue; - } - else - { - firstDigitValue = line[minFirstDigitIndex] - '0'; + rightNumbersCount[rightNumber]++; } + } - var lastDigitValue = 0; - if (maxLastDigitIndex == -1) - { - maxLastDigitIndex = int.MinValue; - } - else - { - lastDigitValue = line[maxLastDigitIndex] - '0'; - } - - foreach (var (writtenDigit, value) in WrittenDigits) - { - var firstWrittenDigitIndex = line.IndexOf(writtenDigit); - - if (firstWrittenDigitIndex != -1 && firstWrittenDigitIndex < minFirstDigitIndex) - { - minFirstDigitIndex = firstWrittenDigitIndex; - firstDigitValue = value; - } - - var lastWrittenDigitIndex = line.LastIndexOf(writtenDigit); - - if (lastWrittenDigitIndex != -1 && lastWrittenDigitIndex > maxLastDigitIndex) - { - maxLastDigitIndex = lastWrittenDigitIndex; - lastDigitValue = value; - } - } - - calibrationSum += 10 * firstDigitValue + lastDigitValue; + foreach (var leftNumber in leftNumbers) + { + similarityScore += leftNumber * rightNumbersCount.GetValueOrDefault(leftNumber); } if (display) { - AnsiConsole.MarkupLine($"[green]Sum of calibration values is: [yellow]{calibrationSum}[/][/]"); + AnsiConsole.MarkupLine($"[green]Similarity score is: [yellow]{similarityScore}[/][/]"); } } } \ No newline at end of file diff --git a/Inputs/Day1.txt b/Inputs/Day1.txt index 239b44b..dec0f9c 100644 --- a/Inputs/Day1.txt +++ b/Inputs/Day1.txt @@ -1,1000 +1,1000 @@ -five3onelxjninenine45 -six9mnfjmtsf2kfmznkxntninesevenrpmfjfpgsk -9vkrmbpnine5two5cbktwo6 -one1bdr6 -ksvctznmffourtwovbb9four5five -6nfhcklxlkg9jbqmqrrxmhn9two6 -9eight2six97dkth -sixgjqm64dkvcccvttnts -twofivefourb5four -gfive2 -two18twocsxffivetwo4 -rmchfml6four6twofive -278eight -six5758jjqpgnvlztwolkcvxtjphd4 -fourz26ninethree8fourxrjlq -mhpx31fznvh6nnjbvjt6seven -kscs7kfvb1three2vnfjrtlvb -mcrxqxcxgq3eight9 -17eightone8ninebshqmfd -1sgtxeightsix9 -96threeninetwo -five963fivexfgfgfbzrjjfive6 -5993zkdnfm -1xnfxsqhninefour3eight -hplgtxvbfqrthreeonefour7 -84cclxfjrhptnfbcpd2 -nineeight2kslgcchdxjppkthreeqhhs -5txpzlsixtwo41 -4nbkjmrt4nine -hnmvzknine1 -6525szrz -1sixsixkxjxcbt1 -5vlj26mfxdjzb -9xzkgd6eight9thjcjrsxggvkf2 -2tlvqgrkc42 -one4five -5six439eightsevenkkvng -hvmmqonethreezhvmzltf5seven9ttdx -6eight6 -hzpqtnjxz4cbkhqphlfpfourqflfjtg4mrztjlhbmmnine -sixsixdxcvbmr8bpbvfour6seven -nine3eight -8nqmbzvgpslsevenbfcrgqbtrzk -two7six2fourfourscrnine -7dr3hhqnvrdsljqrl -529dssfsfknzrffqsixtwo -8sixsmcbslxvlxrkmhxhvgvvrgsixpgthrxlhrmfour -svqsjtlbdbkgjqbcvxhl4five -x8sevensix65eight -fsonemmszxjjx6nineteightvtzkhccgrm -6sevenseven38cmskxvdkqlxktsszfnine -75eightfjbqhksix3onextmlrftdxm9 -5hmngnfrglninenthconesixnine7 -hgk4sevensixnineoneszsnhthree9 -one98nxtghg9 -1sevenkqqckgxdnfour -16three2onekjfcmfdfvhgmgninetwo -1eight3fivesix87five -2fourlhtncqs8gqssxlxczfive -ninejvzjqppsix21 -mkrd7249eight1pm -ppcxsevensevenxbjbvvzcd8one3ms -eightgnnlfive3ff49seven -fngf62fourfivetwothree -onefour42rrzntqts -41dzvh1 -3onefqltjzdrfourcpkfhceightwomc -7ninezcqcmqsltfxltnpsgghzone3four -hrtwone3six4pjbs4tfvdsjqdtfglseven -6lpxrrhvdslxgpjblcmgsgbdpdkfmzkr -llnshf1 -seven9rvjqdhbfour -1fivezb4six -2282mchsix2onelz -86eightwonmn -sevenlcznjrmcbzlpjvfivefhtfvl2vvsrbbcktnj -2one819vsxclfour -dlm2nine -sxbdtwo9threetwo6 -4jfbc5rdzgsblrcgmqdh -nine7four28seven -two1sixmjmxgjq412five -nine3hctlqv -twofour8eighttwo86two1 -three4seveneightl -zx89btcqrsvpqzseven -1chkglfseven -4999xpmmeight3gxxkl -four88ninehhnbssxhbnseven -hsfvzbbxjlsrmtngrxxsevensix3 -qccnqvfnkkkvsixktsixnine1twoneq -2sevengsplvndctjgntsix3seven -eight782two428four -five37shzmklkb4nhddk8 -eightthree6qskmkzs -cmkvmr3srbsnq7onefourbfsrbjvr -t3mtgjq4stm84 -fiveseven2grlmfhmfg8bsb -9bgbplvtzstdsevenonedrbxhftrxgmqftjmdrr -sixfivezptk6 -8mftfiveninedgfmtwo9three9 -pscstrfnrpllhone5fivefourtwo -five33 -4threegfs -6sixthreebvq5 -tsjvdsljzfgfive6threemqjfhrsqkgfznbt -six8five -twoznvvqgmd5jsxltq -zvh9one -4threesevenfivesix2hmm -l8ccxxhqqjb1qltqxht9qknltdbmdbmone -psevenfournine7bzphqxtfmfhsbtxxldhcqj -9bzxmpnlqmt8 -two73nineeighteight -5sixseven -eightthree98112 -eight4zbnpgjqlgntpl -fourhg8twoone1xhllbxfrtwoneq -jzonevsfhdcxzkmcxfhngleight2four -6two4ndnscxkqlzszlkslzk28 -1foursix25695cp -9hgvmtfiveeightdm -7162nine -seven7tqssone -234cgsdfq7 -9eightvpvvztrsrbtvgkzg -two882nine6eightsixz -9nineqqltckg -lgtlzthree21jrx -42seven -6pl3ckfqjchmnplblhkrd36jbflxf -fpmkbm7three -5twoonegccshhdrnfour1 -onexbeightsdoneseven2four -three5sixxj -eightxqzntcpscxbqrsix8three -eightfourthree9eightvvhhlfourp -seven67vdktlg51 -xbgjvvonesbtthfkdvntwo35 -fltjrv152sixvmtwofour -fourfour6zkjdlrckdbfxthreefive -kkrllbsnglkvxxzjmqvdgsfpzx18foureightseveneight -xvmjqznggz7pgrxcfcqj -5two9eight -2rbninevmltplhj6nine -4snzlftzltjfbxdq -5gcpdxdjsftntzgbfnkbsjone -onetwoninenine58onekmtdfn6 -four68four8two5 -lczh9 -sevensevenfivefour141j -bmnrnlvfpvjsfourn1one3 -3nineone7fourfbfmjmpcpv6kgvzndbgpn -633sevenczmjrstsp195 -sixvrcjmsveight3 -cgfhxt4 -4lqvqgsf37nrszkrhtjg91djsxdlrksk -ninefivefive11four1eight -76twovxfqrdksoneeightpgf4 -vhn9xnlhd3fivesix -3sevenzpqvxhtsix -dkkeightwosixcdngxqddtj4 -nineqqsdkmkhhsixpd4 -6five54 -tlzst3sevenvdthkfn3 -nineone2 -fcxeightwoeighthxpgfkfourone3 -9llcdpmninepvcbdonexfxgdfchtkgnmnljpnfb -qrjdrbrrxrldbsq8threepbsdpbbtps9four -299eightone -fjzoneight99 -zz8three9 -eight4mfzshls167eight -five1kmgmnpfhsp42 -6one67one -fivefncmv3dgsx8lmssvqfthk6seven -vlsbqreightseven77onermkfdsvjxkmn -86hxzstkkb -79mnxgbnl -15nineone9ninesevenddrbrxj -21rkt24dfour8four -blxv68threeseven -rbvkltwo3gpmmfmnpone9 -hrqss7 -six1threethree1 -frfctnmmhrmfr8 -bfzsvmcxhbthreefivezlb981 -phrlbcbd6vrf8gkrtnlprn -txbxjb47svrfd4lrdkfbknb2gj -fivefour6dnjqbmznkssevenone -32eighttwonedn -gxzqseventwo4eight -eighttwo53ktqxjfjfive3 -64four3gjjtjq -tmrv9sevenfive -9seven81 -fivefourktwozzszqveightseven7 -three8bninetwofivednine -nineone7qzdcglxjtkchjfpqrdfive6nine -4hjsqzppdqseightblhpdxgjmfmrsrz -fouronefour5fourjxls3 -sixsevensevenoneeightgssdqpgfrx6rpkdljlsjs -two4cpvhzxnbqmk4 -98czdfivecpmvztnc87 -5chczkvdd -dhndkdsbf7qp1 -tdbpx1qbf -358tbjnc -two6264six -55snf -eight7kpgsjrntszcmvrjqcs2two4four -cpjxfgxdngjrnpbkfskpstm5nineseven5nine -one2jxrsxlll1xpkeightztcfnsqqr -2sevensevenzdb -trpcnb536fourninethree -bkhoneightblkqzbblmv8rkcg -zqmmzmsqjghtf915 -3zxdzklnlbdvcqspm -sevensixtwo8rsvdmc -8two8 -eightoneqlcrrlq4four -hlfhtwovvmzkzn5xklvc9 -fournncdgvxk6crvsqjcj58 -7941sevenfour -mshlfglzlvcpcn2ninefiveninemlzkxspxsz2 -46sixone4eightrcmxrmhnmj6pmj -jblfkrc1threefivefourbxd3 -prhvcsmvjx85one -sstdseven3twobrfour3zthzhtkmc2 -9threeqdnninesqvsjdch55zzjrntdv -fourbljt53gfkjkjtcpnlxcb -qrtlkzcthreefnxlcnfsqqvhsix62one3 -knb7three7srrqbfhthreefive5 -sevengcf128btrnrtgbmj3mtzv -brzvbdtwo63three4pjcjmzgfk8 -6klnsftm -eight6sevensevensixfhgnjzgrcqdseven -six2ckhhflcdjkrc2sdtgkzx4four -six49 -56eight -gfivevqqkz7 -twoseven1kfzjcxjj -5xsbckzsevenfdcd6ffh -five6fivezpdm19 -eightsix1zlrvvtflhqbmgnjnthcdbjthree -9lbmb1gflnxtnine -1eightxdrp566ljjtmbpng -twoqbfl5four67three9 -six3sevenseven13 -seven4onenine4ccnmtbdtj -hxzhqqtqdssevenfivecjfhlxmrbk2rdxsix8 -three6brccmgbkdxgj7 -961 -1ninesevensix6sixonetwonine -4hlvbbs5pnjxbpd5xpvxfmn -kkvjtnjk3nineseventwotrjntwo -669zgrhxlrgtpeighttfrrqmhthree7eight -pltqnfslttlhfour7 -31grzj -qkqtwoneeighttgp8944cpxxksr3 -onelpvxtcj35zrllxzt -fcccc7 -3eight1 -4five3ggdpskqjfrbngmq7nine -8cnbxpfpm -frmvkjxxggbssxlftzninelvvtvscl77ninefxdtrpvjfv -rxkcvjbvhk84 -6twonegz -sixpkklnr4vvmzrld4gxrkxlbhjpsmgt -533x2ninedgrtlznp7nine -threeeightsevengpvnine5368 -99eightsfvfvsvzn -655threeseven56nineseven -583gmtktthreeckfc -fivetwo7threevktxxjsrkpseven6 -four9tbnqhjlbmqnjq4gpzpvjtl2 -fourtfjhxrkfour37seventwo4 -threesmpcr5 -7bbcsdcsxttxkrvhmkkzqjgvpzblcsjltsix5 -rtqoneighthxpg5tb4 -6eighteightfourrxlkqkxbxseven9rnggqbxqheight -3b7vtwosixl9four -nhjphtdskrzqjmkk7eightthree1 -nrlthreefourone37 -7oneighttcm -b54732 -vmvltdtxhpninetgvmcmbhddtkpzjvrkvbhrtwo4pdqbnc -8bkhgt3bqxthlxcmdpdcnvkjzrrpmkpnfivefourthree -7nine61vsfkm84vvqbmhltdj -6476five -rmnoneightthree9one5vjbfnnnk -svqjtjzntq4 -tcxkkxxvr78four6seven46 -7tr -twosntlone2two -sktgjbzqthreeseven6mrv3 -eightxxpctkf94six2one -fivegjfftq3fxnclvrl9rxhjkpceight -4qpvtrjhxxqzbjbbrqqcdklhgqmlmmrthree2ltzshfxztsx -47 -5twoninehclgxj1rzgsqtsq -634kmr151eightbrt -smtwofourone26one -2threecdpq32two4dzrzsr -1eightvmhzchc3vhnnfivefivecf -fstttl58fourqgkbjveight -455one -vkhg7rszxzmqnine749 -bvtwone8vninezhkkbvpscqfive6jczrlrgcn -247 -ninemgxqhtwosix756 -fiveseven4kthzq -eighteight9one51fivebkgpzl -sevenmjqtvth8five -ndqsfffkfmjjgzfdjcpgj4sixfr3threesjqbqlzng -8598seven -eightone4sevensnine -qvcgzkcm3 -hskhmfndv45 -seven3zpvgg9 -bqqqcjkgtveight74 -five84sbfkgmldpknfdqjqrtwotwo -9eighthv1ninemvrxdtcdlvszm -qfsbeightsix9djl73 -pbqt8hsdzxkxv -1fgfbxcjt6lqd618 -2rtlcqnk -one1ninefive -xjqmgfhndxtsixsevenm3991 -five1oneonetwo -eight32threekddxppk -1gsxrx7one -hqpktfiveqvtjcxfkznine1 -xlhsxgssktqcmcjteight69kfph -8rfqclm -zqccxsponetkqtnine7six -8xffivesevenhdzfjvlfive25 -xklljtnrbgxcggtpt57 -nine69seventhree -3five4vktxqjfour -sevennine6tbbddvbbpjsevenzxpzkcthreex -86fourpfmlfourninetwobbpmntj -two6bxpllmxtwo -onecsjtf1four5 -ljmkg9621twonine2 -five97xkqbskgr -threefiveonekjbrtqz275fnfour -pbrghznine6threejmfhfqqnlnkm89 -ninegkldqjcmfjninezmmzsttqbj1 -gsmsjzlzheight65qjjjbrqhmnfive -eight1b1pk7two -nine63seventhreeeightfivetwonjdvmxcfmx -tnzthree5 -fivefive4jrsbjmkzvbjone2 -6zsblcgdfivetwofour -1vtzznqfqsixfivepxeight -1sevenpdsf1ninefoursix -fftqmfdhdsdtkfour3sevenjsqtmfive8 -3foureight1cqckq -clvrcncnzkrxxgztl7seven -fspmvzzjf2xngtglshcdlhft9nrqmkcqb4 -1onemvntx2rvcrgnfive -5nzjjsmlfd -3hzxjcrbvtnine -kvkpdrgeight5d -5kpqhlrkqqm -5fivenine -pkzrhbrjlc3ktq429 -threetqxvmjm4onegqsrsqpqh -7ninepsjgsfvxsbtzkz3eightqd -mlbrdfjzcvxr7twokfvdsmsixfivefourh -7twofive -48kzprtdfsch91 -4vfxfhmeightljxvxhfxsjsjtgjlqmgnine -nine3sbfzznrxmphdhjd -sevengrhblnnnfg74sixfour -eightsix4onenine21onetwo -vrqckqrrtxrsjltdplbmnine9six -jfk9zbdr2gpsfdqbsrz -957jrpkcgkcthreetwoblpgkx -894threenineone2 -4ftsxhkkone3 -m9fourztzfvhqstwojx3four -fiveninevm8 -prddhzmhzmeightsixthreeqpzjbdnmgc9five -tftvxbtnine1twofivelkbfsbndrq2 -6seven2oneninehlstxr8 -6qkzfrzqsjnb49hftltrntl -three7sixtpmpninefivethree -five19zgnqjbshbtlhvc7sevenqdmqdsnknine -fiveone1threejjmcfzsxtbtvg -5mkmskszcn9 -fouronefour2bqcs3onetwo -8three75sevenbbsbxjscvseven6mhpx -lhdhnqqj6btjglcnpxxgzc -gvlbmvldpsl2smgdqnh -oneseveneightr6onecseven3 -nxrcgsevenlqf3 -r81fourbnskcrnn1twobcfpvqqtdd -onexdx935ninecjtnsxxq -15twoftmcckrhgg2 -fivemmjldhtbfivellfblbx89fourzcxxjthree -7mhxhvghc89 -onendjhfxlzvzgrchf495onenksffh3 -two36lpgrkzr6rtmhqcngn -9hntjqfrrjmnv7 -zdgrvhz8 -6nineeightvzjnnxjdmxonegtrsqrqnd27four -sxcxccnn1ninejqmtqc9 -3vljzxsgfmfeightqlrgcktdf -1four5fivehpbsspt8 -seven23 -ninek9 -onefkzkcljxp1sixthree5ninelt -6mczeightrfshqxqxts3 -52569four2lnqbzxjbjz -6pmcfgfk179fbfbvr -pmbdtdsnxbmgknqgjj4ninefiverxxmtdgheighttp -2fourckrgbs76fiveeightgjknht -4lzlfvn8zp -zjzjhv9 -threehjlnrg71sevenfiveeighteightsix -szlbnkssc6jxhmhskeightthree5threemnfpvrj -72seven7vgdfgqfxl -kxnglmlneightzhqqhmdz7 -eightseven3nine9 -49ninesix -qfxcgxmznpeightnnqone7nsmsxjsqh3four7 -29seven1ntxmjqgfn8ptpjsp7eight -seven8tnlvtdpnjzeight3eight1vtplvnbpl -j5four -sixntfvskqqrv9one -oneqnqzfbtjnb81szdbeightcscone -four88869pxlszclzfq -mvpkbvfivejjfrxmzxl21 -qznnjltonejfjlslh9 -nine9sfourkbcdzqdlmmveightgbxsgtjdrbsfthkbmsr -four9cfpxmdg -l9 -4mzsstnbltnine -6rclj -eightnzhfqmblpdfcffkfive9 -6ninep -onekpxthg6vr21jghlcxhnvkhbzdjkcfour -2crhnmq -mgtwonefive9drkflmcfmkmsvzb1eightoneseven -31two -twos1hvzhnn -rjjldxlp63five1threetwo -ninejkhbqfkxccdnc4ftnzbdfdjxbjgqjfivexglgtvvdmn -fourzhzh3four -eight8four5two5seventzqlckfive -one113tworzqnqsrrjnxbpprsglnine -6chcqbpl -8threemxc7 -7nbssevenvxb33pxstzqfhdrtxqs -8three276tlrkszgneight -dccvsl93sixfour92 -95seven9ninevhxcthree -onehbdrrpxkjbdk6 -fivekkk3ninespgtqsix -sixfive52eight -fourone5nine -5xvdnfxk1gtvmzbv7jkxxvjmjg7 -85nmvbdrqrb2ninefivefourone -1jqgkhsix7seven9847 -2sevenone8five6twosnfdkcone -fourrcfivekpsxkhrtfive4fourxqhtmrlgj -tqtgd2388 -jbrfsl6nineq -two8lsxfzdfnpthreesix3 -2czrtdlcffivethreeonelsix2 -vhdnp37 -sqkffnrcsnlkmxczzhvr419kzh5six -24115twoone -vlpjbq9vngpkhlpbfjnmztststwo -eight499four6 -five7neightqntdsjskz126msrcns -one79khfctv -1fourthreeonepsnr5four -1fourseven2b -sixtsbrxkbpg9b -dvnsccrktj9five6onepd -rmqmz4fiveninejlxlgx -brbeightwo6cxnblxgskmxxxtwo -7fiveckskgnzgfourfivenxxkfxpzgcqcdfl58 -564 -one257six5vlkrcvmgsn88 -pbvzppchp6twonkkpvghseveneightsix -tlv8 -eight59jj1cfnr4fzczfrvjgbn -hbh8knnine3sgbnsjldfoursevent -xjjvsix8eight8rqjkhdmnncbfivetwo -dtgbxlxsqcftld4 -3fournthreefivennxgmgvlszseven9 -hbczcqkvnnzqzpkskccnnmpc8nzhqlhkhcbrpdhnm -seven3mnljmjj4twoeighttwo6 -nineninetlnzc4 -jxp9one -6htwo47two -8lqdlvc5bldshtkx8six -eight35 -ninethreecfiveone48six -eight9twozmqgvblljf4seven3threesix -ttmhdfzcvq8one28eighttwotwodmlpbkz -5fivef1 -6bztnjckgszfivehdlzcnkbthree5sevennnine -2fivesix -rgjjrdjh16 -five6msbctcqqfgrone -53973two6three -six1zndpzk -q2one4nine2eightltjzkmbfour -8nineeightbdqkbnjcl4chznslmndjgtspvmphqxlsv3 -kfbnmpvjtjtflb7pkvgsvtone -vvvrdthfpeightfive8rzs6 -kxph4nine3eightninefive -three5five5 -98229six9 -one9four843pntrkfkbmddcjhtnine -twotwodcsl556 -njrrkdpxrjtrcdjlxf6843sfdvzhz -x4sfmrqpqcrqfour -48nine -fivefive8gsbk -23twodvglscxgeight72 -kzfnd6 -zngq6zzronetlxdnthreerrgttsvs -dhnqkmbfbphcftlxjdmx8qqbkvdcf8 -hkrzzhfivesixsixgzp629 -4khsfourt79eight -twonine151 -ninegghnnnseven65eight -qx62sx -8seven3vktq -onefive8eight -ns6lspmgksccptwoeighteight -klknjcvspk6 -vvpfptdqf1qgpgmbcx2128six -86mgx4dhfnqlxonezgseven -qhjzqrvhfdtdxlqsz6ltqnmvrxxtwo9 -four6p697 -7fjkdtthxheight7one -1ltsevenpslmhldrp8dtbzqcjdvg -8veightthree7 -38sixseventwosixzxdbxxzqssevenqcrlvptbp -sixtwo285eight3b -pjpg7jqfpkqthvsbdzrqsnhk4jbfv -8sixsevensixtszklsnbmvtgmtbbkkjddmnmmgmbdh -8sevendsxone7ninegcbqdcdqbnineeight -onethxztbg2nbxsxxnfjhhfclfour -4eight84 -fivethreetvfvkpxvdbqsvvdmrj9five -1onejrb2five -sevensevenqxjmb72qvxxjvxb -xtwone3jslsgbchxm -17hbdg4gqgkdnine2 -hgnmpvs9dkjnzgbvgvthkvtdonepjslplmqjf -threesix3qxjf7tm -66ninetm5tdlcnjnchr -sbnrpczfqp6 -eightcnnjlpjjmrxvlklksrshpktpl1one -1four9 -xttzsrkjjcvlgrm584qfjjhzlrhccj9 -qhclqvgzhvpgsnine7 -gtl4 -5vnp6 -8six1svdfvxncsvfspdc -eightjbsfjtj8sevensixlblxbpxlsz -8sevenseveneight -pszx46 -one7sevenfour8onegs81 -95fiveone1onefive5tqvhv -5nine7threehxjseven1 -rvpqpzfnhvcxtvbjnxp9 -one7txqvgmpqlnxceightnkvl -seven9khkthfnckngnlllgk2679 -three6535onegfhkm9nq -five3vpdxjkmzrhtwoninethreetwo4 -fiveninegqks5sixsrmlbnhxn -fivexdtvlmpthree2brpjxqzgsjltkmnbltwo -sevenfived6five -seven95jrxgbnqvgnine -4scx -8oneonezspvqtwothreeoneone6 -six3fourtwozzbxboneprvjmjmscbkjb -6sevenpdksvksix -cfjp3eightfouroneseven -1two9 -four9eightfpthree -k4361gbbxthree -lmmfz4four -6fourtmeightfour -five54three -klbvmvzrxs91eight -58rxgkzs58pcrbsq -71onenineronesix -18cxgmdfmone -foursdfcxfx8 -hcmqmqzb5sevenfiveblqlnlx62mjbrpldjone -two29two7lzjsvzcxdz9bsjtpbfplf -oneone3teightlj -8txbph34 -seven9one -82hgflfrtz481four -2qjfsqrkkbqkcgvhvzhnzbmfive73gkfxfhnqqbtx -7fccpfrxstptwoeightonegnine5 -19vxbhzrhfkhtsgzzhfszxpcrnrqseven -nnlfour9jfjnrnqbnb -fqtfbkpmlz4seven1eightfour19 -x28qtnsmjpnc8 -sfdzkppzlhcxrjrvkssr375tdnlntcst7lzxdlcmprmgngqgzdsl -vxoneight8nine935rtwotwofour -zfldmtjzpzfbrrdgxslvn2xrj -eightv8five5ppzsevenninebsbl -four1sevenxc5 -721kqmfbhmgxvhvqninevlbdzfldgd -39one -threerhvrhlfiveonetwo2 -sixscfcpq6four1eightxdt -four6fvfmvtjrfhkfrbfxcdjfqhmmfbf6 -sr31fouroneightr -nine6twofive -threelzjrjqnine4tlfpmvfq -jjc63zvhlqlkdzltg35nine -fourmpfpdxntv1szfcnrgvfpxt3one -onetwo4tlzvftnvsfthreeeight4fmsnqt7 -xroneightzjvfvljsj59fourfour6szfjkdprbk -nine3one -7ninerphmbqphdsix -9ptv2twofive -6two4seven9ghjzqd -391onenine21n -4vgpsxreightdeightseven711 -kbvkrrv77grfdpthsix339 -fourmqcrccjcfive4foursixc9 -eightsix44seventhree -4five8two9oneightkc -mgsix3onegk9 -trftwodjjgqnstznxxshbdc6dpphrz9sevenone -eight19two87twog -5pq18ninethreeqqkfh7three -twoonetpkmrcvvpk94 -threesix5two8two -two1three3 -eight8four75 -kjcglpndtjqxpbf9eight6 -two447mcz5 -sbqfpgkbsixfivefiveone6qtmdnfive -qxfsljsixtzpvphj69ccp -2fivekrmpqts -69eightnineoneeightwox -211bvzlcdgbs -ftcfgjzgnine2kcdvgrrnine5sevenfive3 -eightone42lsgpjeightthreenine -f599phncmsixfourfsrg -vgxdcrsc8one8rppqvzkckqgseven -j2fmjmjxv6nine -5mctgjjsm -seven4mqtfnrsrnkghfourttbvhnnkjkmq -2three8two67 -9five51ninesqnbfvqnmfcjhfhzlpkgjfzmsl2 -5nineninesixzk -51gvkhcddt5onebkltbv -942 -gfpq8jmkhvvzsdbzmfkqb4 -22vxpndczcgmxdsmzsthree -vbdzf7gtqrqjgvjj9fivekqzggs -4mzjjg6 -jgmncrn3five3 -gxghtqrjmvnjfourthree2fivevjqntqtzsix -ntlnxtwofour9bh1 -five6three -threeh9cgvxnfour4 -snbxpszrgh6mtnbmeightsixtknbnndqphbm6c -4c -1sixtwo2pcsjnbdrxtbjzrlssd57 -phhxnqdrjnsonefourthree73 -threekdlzcrvgc3pxd35seven2xjnsjxlczr -5lcseven -one27 -eight5k -jmttwonetblnkmkjzfour8r8 -eightfive9twovfdpzrcvpppkzdpbhtwo -1threedjsttltxcthreefivethree7zqlbfqdxqone -5sixzgzfhmfqbp -7kjfg -zxoneight9nmlz3four4kfpmfive -37four2zqr6 -six33fiveone7 -522bclzxzrkxdqvpl5nggsksbk6 -sevenninektxk3fcxzctsseven2 -twofpxbkzrgrtwo1twofrnnckz -qcdbfcrtwo123ngrvvxhn -kdpr1seven5npjblk -eight4brhnsxl228pknpptlbflncddvgrh -two3four -bstwonenmlthreesixdsrbjjz5skpfsgmhb6zq4 -r6 -dnplx6ztonenine1cdnhfdx -jjp749foureightcnrlnd9 -8fourtz42xhjqkpttdfgxvhbnbmnxn -1gzcvvtwodqgnsevencjfour -sevenvrnvzp3five -ninexjnvzltwoninefour1 -sevenvthreetdbfgjseven4foureightsix -5tmbjgdjqkffivevbkkpltt8fourseven -3cjnkkl98five7five -seven28pplnksndqtvlsrk7msjqtzonefive -92two834 -mlfxonefourone48pgcqpgbbczgdr -zfh12twonect -sevenvdhbh7pztpvf6 -eightsix2oneone -fvspcp3sevenfourninethreesixqvhjdjqxseven -8fives1seven -3threesix5fivexvbpnrchdcxgprxzths -7fdt -nine11rkpnktrsffqgdeightninefmtr5 -xvl4threeoneights -one794 -rjqxttlmkxljdfrrfkgzloneoneone8four -19xmcfsbskjrzpsevenone6 -nine42fvrtltg4khjs67jfzvp -rxsxmbffpfive8ktrpczdn9 -fvzcdbfmklcfpxbgqkzxrhmb471pjgvs -fiveeightnzxxqsphlqfnlffxzmtwo2tffkkv -lkrjqsixqs5trpqbnb -1bkpxfnrsixfour -nine21kgtqcvvdmdqt -three1plnrboneoneccczrnjsl7kj -9dc -htxcgnszrfive336szhb -fivethree96vplbdqjtwo8sgrlljhtqsix -sevenptlvbltgcsxc62 -vvtdhxqcmqrz91h59rnpscdjdltwo -threetwo3gq7gjz -7fbeight -5ninethreeninejcvz7fcqxbn5 -crpbppclxsixtwoqdkflfdksq3 -tnbnqxklgd17onedxsevencnmbsmr -4qzxtl46sevennhdjr -honenine1 -1nine934 -xhtkzvnhsixqcxkdvmzhvnine891kzsxmzsix -ktscvdksstwo26kgjzxtlbrpxbjr -vfjkncjdtn2sixbtqqdhqfdnine -4kvzrgninethree139eight -eight6433bqvvcpljb5sixfive -3seventwo8ngvqczkjrp7 -rtkqmptnnsgdrhxvmfvblshpqthree7zqgx -bltgfkkvnctqkc226qcjxcfxb68 -9ronetwosix8vbnhgxxskdbc -4sevenfktbgnxbvcmdrbhqrpgmsm7seveneight -htp3pmpp897twossgtffdvzz -gdceightwoseven4 -sixcznfbvhseven1four -32twovthreelhpqvszgl -two1threeninesix84five4 -fourpgskmztd9ztsz7jxjmmdqqx -twohrbnhtrv3eight -6one9eight7bzrxvxfvnrrrznncdhj7rtdvb -4fhgjkkcjv -xxphjxdfsqjj49zhpxhb -gmmnine9 -hzn8six48one8vsmxc -one7ninekhlzhdplnbnine -eightfoursnrdnldssh41ggf64rjlshkoneightfq -nine55one6 -mbhsqvlfhv8zsxz6seven1 -cjmvqktrkq18jdljgrg2 -9fivethree935 -ninehfhkzzhlkd8ninenjg -5six1three1 -nine3tdkgnine2three9 -92mkgbdhsdgvqrc -xchjtjbz8 -heightwomgjd6fxzpnl5 -jkprh4lqxqhglqjhppcxqnine72vfzkqnine -nine21czjslbsix16threeeight -five9tgbtsft7ggnfktl35threechxpcx -qgcnmbg89threevhbpmnnfcgeightnine -2jdqlgfour3 -ntnsscfsfive175tjfqnflfdd -twotz1fourfour7blgzpqtnpc -4fivehsnsstkp3 -4bk -pmvnbqh9 -nine4qnt -nine8eightlqt3 -onepccffive8seven -sdkqkbshzb3nfour -8eight4kx476four -hl5threeqhdjcqlqbrvsq -skqzcdqcfoursix767zt -txrvszgqvnpx4sevenlfvvvlhshxhk -seven8eightseven9rcdjfourseven -5eight5ninetpjpsptwo -nine38ninetwotwoseveneightwogpn -7sixone2grgfour -szfmk2five36 -eightnbcthreefivedmhfmstslfz2stzck2 -xffvthreethreeseven1kzcptthree -pskfthreepk17gz -four7rlk1eight -9xqjdvfzbvfour2dxlhbspzppf896 -lstpxqdlmptvrvf9gvdqkfsjcvqnpnsix -eightsevenfive6sixphjcrdtnlddfcbrgonetwo -4rshkxgsbvgphlrxkxgbpjhqdgjzjlonepscqdhk -mzclsv373sixlb -snqmxmghbhpvzzff4threenmfkps -7fivebqffc -2mdvq4m -ztlp6seven -onesixninesix1three2fivetwonengp -jqplcrrtgshzfrdcgvrxst383three -68twoseven -2eighteightpzzrlhpbmfivefour -nxqjlh3 -hxgf6 -786cfcrl -8seven7 -2xmnbrcvbbvsevenfour -eight9nine4gjrrq6two -3ninethree -mgmgbfbptqdh79ltwo -onevk8kfive8sixone2 -79mngvbhpkh1one -14fivetzmtgcqpzjpzhjxfvfmbnljxeightzlbktsmsln -744fivezxxgtvd9eight -tccmpsggmhv2jljznkpndntqrninenfzdvzkbrg -nineeightone7threejjgzskd8fiveftxr -vvtwonetwo2nineonedvhr6 -8p47qcspdvhgnfeight8twoeight -twoldpdsfivehrpzthreeone1jzf -vnine7four84mjphfztmjt -58qksl -4threesixeight9two -2sevenmfnbfbvxrf -22sixfmcpqlr -45eightl8flklsqkl -fbfgcblg7jtjhfrsnkfour4vx1 -5tgvdhfive6cnkhnjldhqpj -kmbjhbfpbdmczlbg2oneightd -hconeightthree4zgcone -6kvfj5 -three6lfnxx -9pvhzpfqh5vlgj3nnkggxqbcxthreethree -seveneightdrbthree5sixcgkxvpdz -7seventwokcsixdgqfbvrqcp -threefive2sixsix -bxlckjtznjfspcsixsbg4sixzxnlrhhdgp -xnl7 -2drd7499sixthree4 -tcxdsix94sevenkcmjzb -seven19qvsdhlpxzgpsqffour -twobb24onetwo4 -fivefour4three7 -sevenonethreesixdq1 -rvfjxqd7 -tk3 -66threefour -htwonekfgczxgkzlhxtzpbfdeight8four -four4eightfourgtcqgpvl83fqvtwoneqk -rbsfmdkdcjgjnvn6l21 -m4foursix1 -4fqddqlgqjzone -3rnxq64onefive -5sixtnthdqksseven5 -ksdlqrxdgp8five -tsix62sixone2sixoneightl -nzplhfour3 -ninethreeninehkqkvkmsixznxmb3six -41six8 -7eight187nine -sixckpmqzplxnineone4znlrfssc -1cxjrhptthree -1sqmtfgjqb1 -7zvzhfkeight -69rxlcvmftnr8five1 -8bone -47thhzfpkeight -threesixksevensevenfssevennine3 -5fivethcktzjfivehbkhgpstwoqgbdjknrfcpqvvhnine -3n -eight4xftrfsbtqd3sgmgvtrhrltz3 -pdstthreeeightx297two -six6ghftkxqmvtfhtnjcvhhnine7 -51nine5 -seven81tfqzkthfmt -3bndtfourtljqdjhgqjhldhf3three -3dpqsgqscqrppfivesevenmgvm -ns2lkqsixglmsvdrd -9sixfivetrhdrsgfqz6onefive27 -nine67xzdzrgsevenonehlfkstmshgzpgbk -bzvvqpxnznkzsmr5 -plcxrv7nine57bpnkxltnrlvlnslvd3 -onextfttfivebxplndseven7 -98fourninefhvlrpqnsixsix -9onesevenfour -vmnoneightsj63fiverkrrgzfdjsngdmcfprkkvzqnlkg6four -threefourtwoonejseven9xvcseven -gljjpmskv5sevensix7three -nqlxzkzknphxxvzrqrlstxjkdtlnx8 -52three -9onefourgfksix24 -nrcnqtqx66fbgfg22 -qkljqjpp6qnrcvscjglpphxtvqrdznqtwo8fjlzmzc -twoczkmvmr5sevenhvonedqvvln -8tvphxpfmhzpfour36seven -eight39gqfdmfhgg -xkcsxsxkn6 -frxlxtjbkgsbgtfzdlrql329zfxbhghqx -nine75eight -1vfdtvhrthreevssjcjkrv -seventgthfskdc7xrpghjrhn2 -fivetmxkjczpjninefive5pss3onetwonetmq -4klstxhhpjzfkvonefourthreezkchsjone -rxljd9four94six4 -5fgnnfjl2three -ngfq4rsevenvngjtrjvvkcnvrs -eighttqc7frmxtfoureightonetwo -threegtzbdttnd6tnlsevenlfqbnvlpg8r -dsjfrslnxb8fournineshzqfourmxjvhone -27bxtdmsshfourtwo86 -threesevensix5vc -44seven -two1eighttwosevensix8 -hbnlzhbfvztwo4kjfzktwotwo2sqgvdbrjbg -two6sv6 -gdgdsbtwo98vhdlf3eightwohgv -tztgspssevendqpxvtsftgclhct4mktj4 -xbnzpglcdgrrcttvjxx4 -dkzeightwotwo1gpfn3njqzkxhhsc -1ggsixfive -2eighthlhthdn -hczrldvxffninemzbhsv2two5eightwozfh -nksxdqvpgq6jhzl -tkvjsxzgrp7four4thlzxone33 -bpncmqxsprpkbpznfivebvhd7lpqspfhsgq1 -threeone174fourkbkqvtjlfn -fivejtwofive96fiveclc7 -twotwothree22twosevengbqqstsxhqgczp -qgtwonefive3three -nineeight6nine1three1eight -oneeightndv5 -98eightoneonermnddmgqsseven7 -4l -6r8xlfznmgffgmrnfsix13rnsv -82vvnmv1seven -1nqrqgqjrjqgpxxfrqm -ckdmgxspjfoureightnblkpcfr1 -2threesixqczmrxhdrsevenfour -fkpr1seven65nine -1ninerr6 -5lkr -nft4sevensixslqdfpdlskeight -eightfiveone7rdptzjjmmcqone -6qghmzchmtjktjkbseightczbjmsvmrk88cgctthsbz -twozzgrzbgkrkmklkmvfive86five -4six21xjxqjmqjdlone55three -five42fiveone -eighthc747sevenone -four333six6 -bczkrqdh8one4zqcxrkk -3cxhkclpfiveqgsk -6eightjnghnlzbhbvnonetwobjfrpnfqsix -4ninecjzlk7nine -85four -mkfcnntfb2ltjnjbslfgvztxgpfcnine6four -zqzllvsdvtwonine4onenineeight -11sixpjjvxbsbjfive -35nhjgtpflthreejqbgvgkdcddpfzfpt -9threebcv4sqtrdrgnb -x4bptzpfgsevenfivenine -1oneqgfpcdntgonectjgnrdxjptfd -zrblfddvtgbqtkvddhqzpkk71ldtsixmsjjkr -three5mjt -one37ninenineonexjtl2xqhhnmtd -552oneonehzscghzpqvtndvlpj -two8nineeightkfrckndvzhcbdhcdg9 -hgdjgone22dsdnjjsmjtrxhxssx -snh6bntph -foureight5nine2 -1kjb98 -ninetwo2eighttwo -hpcnone5cjvtpqxhbh596 -3gbtdlblgp -4ninemzqkldqrcnmcvjjxtzgbrp -fivetwo6 -4tlbxgnjgc522zlldmfbmh -fkpsxsmchn3ninesevenseventfxxjdnqxtwo -sevennine3sixsix -84s -seven5seven6sixmdfrtwo -one269 -493nine -29onecklhjcxvpbzfour3 -35vksqxhbnxk -sixfdqttpskdnbksqxg9three6bqqpngfhz \ No newline at end of file +15244 50562 +81245 49036 +92897 21393 +63271 60643 +49672 33212 +92232 76048 +53492 58600 +92941 61161 +58509 86979 +28174 73806 +70084 21118 +24410 68037 +84499 63407 +66548 35177 +65580 63759 +87805 49036 +83099 19486 +18390 12243 +26848 76511 +18807 86451 +72147 24247 +79927 19614 +11257 32484 +58028 46123 +75951 64756 +50715 78058 +95795 74458 +32111 39063 +46546 38789 +72734 39167 +98182 93444 +62716 53597 +89475 25175 +39176 55091 +40923 88724 +62512 51774 +86618 93444 +52758 47249 +13428 93526 +21791 94210 +93809 21118 +17938 14392 +60129 64756 +70192 49036 +12155 79882 +40333 53270 +23806 88706 +46661 85277 +88336 57672 +87513 36284 +41580 97455 +39488 79018 +53900 78058 +63780 98092 +18471 20090 +77849 73059 +93111 78100 +52950 22317 +81379 35177 +91351 19771 +14227 53597 +51335 39645 +98624 98092 +21994 54585 +60107 60337 +63161 47739 +42618 96226 +94665 84252 +79153 34048 +78730 80552 +75722 70308 +68857 47918 +88672 98092 +59881 27613 +85772 32111 +30276 98092 +14586 84246 +67593 49036 +72269 13771 +25858 56490 +33541 15922 +16446 54557 +47844 62540 +78173 49722 +50682 88706 +75282 74146 +62042 83481 +18797 76066 +24212 35217 +55048 57348 +91631 84573 +93807 97649 +88119 98092 +19366 77445 +76255 50452 +98264 93444 +64583 34766 +96480 54682 +67367 64709 +12629 53597 +55622 98092 +48715 75722 +38717 98460 +88940 42098 +57583 21667 +13512 32111 +89814 60737 +64756 93444 +16224 53597 +10346 46433 +73809 55198 +80544 20677 +11856 76359 +59087 21118 +72673 20090 +49449 45231 +20810 98650 +28257 76359 +72761 88706 +87721 84970 +33910 17682 +71512 76359 +51593 34928 +52645 73953 +65785 21745 +29202 39203 +84191 30175 +90538 28190 +36816 33095 +74544 38282 +97584 54184 +58739 93390 +75540 64756 +68067 64756 +52407 25292 +15044 66413 +20591 93444 +25885 37703 +26653 32104 +42596 88313 +23950 64756 +52254 88313 +70806 44075 +42195 20677 +36372 36394 +47944 93575 +38297 21118 +19998 76359 +88241 78058 +73698 44859 +92258 29814 +98092 78058 +28030 88927 +53514 59214 +77999 30893 +66582 71673 +79423 10257 +46938 86494 +42971 21118 +11339 13583 +71889 43763 +25429 62716 +81687 15843 +35428 14294 +21885 88053 +98374 37224 +81362 34784 +41486 20677 +20831 98092 +26838 45057 +89226 64709 +11351 66528 +20955 49036 +34764 42441 +43198 21118 +54892 21799 +64587 51818 +62645 88706 +39255 32111 +65266 40330 +20283 30516 +56574 21118 +12809 35177 +23338 15079 +58721 76273 +68541 33747 +46673 34048 +59073 25694 +80216 62716 +81975 28478 +44297 45993 +34344 98092 +63009 28253 +43350 24492 +95286 35177 +33964 82330 +87854 76359 +23407 81183 +95569 74797 +45440 77445 +80991 19568 +30893 61274 +26305 69824 +60205 68773 +12663 76359 +43419 89650 +39569 77945 +73240 17501 +84277 39378 +94177 89662 +95690 94786 +92242 91731 +73905 51412 +35977 13583 +27680 20677 +79830 79733 +84278 52001 +85984 62716 +39122 37115 +78800 35929 +33253 76179 +83659 33516 +91248 15310 +89362 39762 +15884 24386 +98545 18731 +15249 34048 +47287 77445 +68392 27779 +62854 73116 +43214 39063 +65154 73341 +71451 89287 +85490 10108 +10175 60337 +79597 54843 +15040 15044 +96993 21393 +36177 66813 +44659 38606 +10713 49127 +95267 84970 +38841 75464 +33233 71632 +73302 93444 +40471 21118 +26947 80385 +39627 51365 +47637 30893 +53778 29214 +79782 45138 +10038 45411 +86184 64709 +69322 93444 +70602 88706 +85109 49036 +58501 31677 +97931 25694 +24913 88313 +19478 93437 +51774 23744 +45194 46530 +78436 13583 +75773 53334 +24862 77445 +98325 49788 +68242 44288 +21878 78058 +22527 15044 +53407 98092 +33702 78511 +76946 86061 +34943 94066 +66974 23236 +87132 37827 +28641 88706 +78825 49515 +14741 98092 +56627 38087 +47539 85498 +40528 88706 +71885 11213 +83869 60337 +13761 97944 +75267 94765 +76391 40872 +84919 45561 +82510 26839 +42950 66528 +53597 88930 +51068 43621 +41152 77639 +82758 52077 +38873 70358 +88084 36028 +96405 64127 +24799 34048 +77846 98859 +20374 69465 +63292 73846 +11172 84410 +23525 74835 +94244 21118 +32196 95922 +28936 38955 +27350 25044 +20053 63490 +62187 53533 +15008 20677 +44778 75218 +34221 98092 +39018 98053 +23017 49363 +87337 21579 +72930 17695 +93295 39063 +66854 16885 +34104 34048 +60507 13583 +10728 15374 +24778 14446 +71424 89693 +40413 18036 +78058 75722 +37560 88706 +13236 77445 +87173 93444 +73989 37520 +14985 45194 +24184 81289 +28240 76359 +12680 21118 +97498 36199 +93727 75722 +17373 64709 +15927 39063 +30358 20677 +65650 35177 +46846 81415 +53260 86686 +32998 80757 +61488 21055 +95554 23175 +19043 88313 +99442 65217 +35322 56161 +58264 30893 +48887 76048 +96519 97502 +88445 49036 +22815 21393 +26997 56009 +45084 25370 +82066 63417 +88706 13583 +37524 92452 +67340 90779 +37641 60337 +84745 45323 +11631 83982 +19247 76359 +92635 34048 +36981 35177 +31598 74065 +54121 28812 +76881 60337 +99584 27133 +55312 55677 +83419 35177 +13942 23226 +89059 79979 +45943 14892 +49359 83296 +68331 84970 +36265 20090 +46411 98346 +25016 74405 +61228 86987 +47787 64766 +61125 43591 +23793 91663 +20371 49202 +40797 98092 +45793 88706 +68119 25069 +93194 73910 +29041 68173 +40414 90131 +35827 54613 +95241 34755 +34804 49863 +19037 54929 +15853 56399 +28746 57681 +33009 13250 +37386 50787 +89907 88313 +65824 37078 +29642 18922 +25336 60337 +77952 46523 +44241 87880 +25674 39063 +21393 48408 +58355 99461 +69496 39332 +27282 98092 +69938 71743 +83723 88313 +88439 45323 +46485 88255 +39718 23226 +23065 93444 +27197 78058 +72503 76359 +20982 64709 +60535 63346 +38653 13583 +77768 52721 +11298 49544 +42013 66528 +18141 45194 +81075 96111 +39115 37630 +18584 71632 +73719 94863 +85615 69932 +16171 24776 +78057 89054 +97570 12724 +51603 32111 +62411 76116 +72300 95646 +34238 21393 +38052 45323 +29020 84647 +41893 45194 +39513 48753 +11610 14667 +95685 21393 +95779 20677 +15324 63196 +76334 94163 +68091 45194 +38482 70862 +15369 88313 +89175 64021 +60543 34048 +56673 50331 +49457 34048 +71887 13583 +88321 21118 +71071 23226 +67178 49036 +91821 21118 +20076 10076 +87303 84970 +57511 12268 +43501 30007 +91975 66528 +15448 72284 +69907 43654 +25571 11414 +52353 15044 +69803 78058 +40474 52042 +26253 70310 +39802 97896 +83210 97215 +37474 88313 +31093 97572 +42301 23226 +19726 13583 +94312 49036 +58482 25755 +98687 38510 +19047 98092 +26950 78058 +71158 28096 +96412 84970 +35920 30893 +44526 99812 +42755 51182 +24379 30893 +70947 60543 +54882 71632 +51233 33596 +20462 79975 +53935 84134 +74070 62410 +54102 22085 +13298 20677 +26602 92907 +42648 49332 +22183 93444 +30822 98092 +86804 77932 +10838 88167 +24523 65219 +41568 62650 +80060 79089 +21439 70889 +66602 41342 +19704 34111 +67226 95394 +65479 92893 +37260 49036 +31997 30937 +97707 31068 +13170 78674 +26045 35177 +24059 35177 +32491 33653 +75897 71632 +10612 84970 +11001 88313 +35498 68825 +96341 10573 +23226 39063 +69398 67618 +17730 60337 +86503 45099 +72504 98743 +82150 90026 +68294 54832 +80912 34048 +96999 49036 +97530 20090 +35480 49036 +20998 30893 +70873 60337 +91802 62572 +54034 15709 +32710 84970 +58337 58861 +59198 59125 +61993 93321 +79647 21393 +26291 54259 +74198 76048 +57851 49450 +75838 37799 +60309 13382 +86676 72545 +29406 23958 +76718 75217 +33197 67338 +65924 20094 +88612 52547 +75554 14101 +36525 94200 +70266 20090 +36358 87645 +36508 93007 +28589 91657 +48088 77015 +22798 11552 +56726 20677 +80189 32314 +21360 96490 +90866 88706 +39003 18500 +27798 10095 +66032 15135 +11051 34048 +94174 88313 +15442 61388 +10452 20090 +11929 13583 +34739 41426 +64828 49036 +73891 39034 +52449 99470 +71065 77445 +89965 71632 +60544 34717 +21118 78369 +49478 35177 +26213 93444 +49857 23226 +74220 32262 +72833 27081 +38455 99610 +54342 61755 +43456 26783 +24034 76570 +32201 17321 +23799 39823 +72637 37646 +10964 34048 +42818 20090 +21006 39063 +39063 82696 +30375 66442 +15052 93444 +87906 50391 +17028 10100 +81936 32511 +12837 64709 +16027 78058 +49036 60337 +99212 39063 +28629 21118 +65863 84395 +20677 39063 +92405 60182 +55155 39063 +39167 69664 +74584 30893 +69147 41166 +75535 23751 +41314 88960 +47916 76048 +95846 15467 +14883 29065 +85080 93428 +52335 68547 +98645 93444 +39194 96760 +73927 23226 +90575 88313 +46134 11217 +85511 31236 +10109 37785 +20240 30893 +26094 56917 +35316 34048 +73503 25694 +89783 93444 +76048 84368 +63277 64756 +70675 53597 +44803 20677 +47915 20090 +12885 20090 +96783 88706 +55441 39063 +28482 98092 +91088 20088 +56209 49036 +73427 54203 +84253 46441 +45378 88313 +61961 65758 +68877 21118 +99259 53597 +52459 33058 +52656 56240 +95881 45231 +77445 13060 +91203 71632 +80736 20127 +33376 22802 +35538 34048 +98323 92633 +51634 45231 +55669 87627 +21536 17362 +32629 77445 +49199 71632 +57371 20583 +23040 90921 +73189 76359 +18892 84970 +75932 53597 +35376 53731 +29756 88313 +80575 64370 +11795 42629 +72509 82819 +80073 66528 +39611 78343 +55678 77155 +74003 35177 +82981 87429 +44472 88313 +15879 43889 +92293 30401 +68169 72422 +46139 13583 +25753 71632 +29238 13583 +65772 94594 +72372 98661 +49282 29132 +59258 51774 +20268 19289 +68202 10161 +30853 12555 +79108 66252 +93219 49036 +97625 14093 +15662 78058 +74532 12621 +84970 66528 +43513 68633 +24015 37782 +61575 50110 +75452 32111 +95466 69622 +27039 13583 +72285 35711 +84251 33375 +29424 76359 +58618 70025 +14379 66528 +89386 88706 +93381 20090 +91398 98680 +42769 45231 +12169 87022 +25979 78058 +72635 41261 +17059 63554 +47259 79838 +76636 98092 +73546 95012 +91197 19703 +65589 88706 +73955 16375 +23737 62914 +57497 65544 +89971 53597 +65549 60337 +49793 76048 +47384 76610 +23011 71632 +50105 41881 +56427 43543 +30880 76048 +24879 88313 +68581 69278 +74682 15597 +43180 76048 +90603 49036 +52305 12532 +22850 81110 +83915 39167 +19676 43682 +18372 71954 +89452 88706 +59733 65480 +70454 82540 +60701 46004 +90655 83636 +70929 71632 +28216 29450 +96165 67274 +34322 77426 +31874 57584 +54166 90667 +99511 98508 +31060 92465 +55106 51095 +79552 22669 +27806 75575 +46797 33693 +64746 32111 +76861 10157 +76339 65246 +13583 91436 +14467 16938 +85582 35177 +13718 20378 +99759 66607 +59581 15550 +96543 22529 +86658 75460 +65202 88706 +38311 38185 +19721 38534 +20090 65369 +21044 60105 +45323 93444 +41853 88706 +48731 39841 +44220 71632 +49345 80849 +77455 96766 +64991 79807 +84833 99183 +15508 15491 +31649 95360 +47963 15187 +32556 10033 +98424 72571 +20214 45512 +92261 73300 +83550 30893 +40965 30434 +73994 76048 +55035 53597 +25828 60337 +75771 88313 +67673 77526 +44405 93052 +18454 90175 +88189 33126 +87628 49036 +71632 71504 +37621 85292 +23775 66528 +52816 35363 +30089 60337 +98618 96587 +44216 21118 +26104 88313 +42299 45510 +45953 35177 +88461 49036 +94707 98092 +44832 34048 +30018 97006 +10073 60126 +32801 21118 +93444 78058 +14724 75670 +88496 89181 +97226 64756 +44779 84970 +20417 20090 +74763 34048 +86926 21988 +82229 51396 +41522 77498 +97004 64462 +94063 53597 +33439 77445 +52901 86349 +95858 45194 +46763 37729 +99339 32386 +97353 39063 +30474 20090 +29221 48754 +54778 62716 +32771 39063 +20116 71632 +69722 87766 +51398 43440 +97793 76359 +56926 32111 +66003 75722 +11344 94388 +45264 39251 +94465 49036 +12978 38585 +17184 53348 +87705 34048 +32187 85695 +51481 78692 +54232 60337 +99572 51669 +29822 15075 +65918 82780 +66528 23226 +40810 85626 +71957 88313 +93701 88706 +10667 73326 +51857 77839 +13968 15900 +99521 15237 +43540 92443 +27624 12544 +65271 76048 +44186 14578 +33230 21393 +33874 35177 +54932 45194 +18315 53578 +69769 71632 +75322 51896 +20861 47764 +88546 23226 +29838 93444 +83883 52312 +67889 35177 +59762 39167 +30665 65756 +13966 93444 +38266 43913 +60711 39167 +42774 72205 +76359 37929 +65904 13043 +34048 77445 +38275 66528 +84943 34580 +50731 74327 +64612 53597 +14016 49346 +55402 66508 +93047 76359 +49251 20090 +75392 87115 +90871 76589 +13432 49036 +18501 19808 +73315 38104 +18380 78457 +56744 85328 +44147 13583 +98969 79480 +16683 63967 +83183 68296 +33184 80175 +36362 93444 +40671 53597 +65788 71632 +23573 75722 +50571 60337 +67765 76048 +73101 48453 +67112 35176 +46594 70172 +75172 17447 +45231 76197 +20392 53244 +35352 32191 +20609 45194 +78496 95165 +12271 85861 +89991 76048 +65923 30779 +71880 30893 +73845 19368 +25694 77445 +44679 71632 +95542 29625 +72865 48533 +43025 65302 +38909 78058 +38961 77445 +12553 66528 +66378 76359 +79514 46457 +96727 76359 +12664 91220 +22671 32111 +60272 21393 +54910 43373 +78968 52670 +31357 84820 +98176 98092 +43398 88955 +51128 13514 +97517 39212 +53814 40263 +56961 35177 +90552 31236 +13602 13583 +12187 44890 +47432 44401 +84078 64709 +77515 71632 +88313 70149 +69118 78954 +75221 27687 +64709 20090 +89680 59037 +31715 65294 +61413 21118 +75865 32111 +67755 31175 +52584 94277 +47546 95471 +91225 55015 +28913 58527 +65645 71632 +19183 39377 +47460 95947 +75848 23226 +56518 43259 +60240 48233 +31724 84970 +37699 76048 +18796 64805 +37497 45231 +42751 75722 +28509 34048 +90061 17966 +65385 83274 +72856 25904 +41016 21118 +86979 93485 +18571 88706 +37984 84970 +36879 21118 +72715 56620 +88099 34048 +61613 85581 +15090 77445 +35177 86160 +52551 58172 +60337 20677 +95870 77445 +51272 34048 +31236 15332 +77046 35697 \ No newline at end of file