aoc

Advent of Code
git clone https://git.pngu.org/aoc
Log | Files | Refs | README

commit 1890a2aa879fd5e82b4264668ef5ce358ec7ae9d
parent ded8054651350247d5dcb3e4a0f786d1d0dc4edd
Author: Jack Sangdahl <jack@pngu.org>
Date:   Mon,  8 Dec 2025 17:01:39 +0100

Day 8 2025

Diffstat:
A2025/8_2025.py | 45+++++++++++++++++++++++++++++++++++++++++++++
Adata/8_2025.txt | 1000+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 1045 insertions(+), 0 deletions(-)

diff --git a/2025/8_2025.py b/2025/8_2025.py @@ -0,0 +1,45 @@ +from collections import defaultdict + +input = open("data/8_2025.txt") +data = input.read().splitlines() +p, d = [], [] + +for i in data: + x, y, z = [int(x) for x in i.split(",")] + p.append((x, y, z)) + +for i, (x1, y1, z1) in enumerate(p): + for j, (x2, y2, z2) in enumerate(p): + dist = (x1 - x2) ** 2 + (y1 - y2) ** 2 + (z1 - z2) ** 2 + if i > j: + d.append((dist, i, j)) + +d = sorted(d) +uf = {i: i for i in range(len(p))} + + +def find(x): + if x == uf[x]: + return x + uf[x] = find(uf[x]) + return uf[x] + + +def mix(x, y): + uf[find(x)] = find(y) + + +connections = 0 + +for t, (x, y, z) in enumerate(d): + if t == 1000: + sz = defaultdict(int) + for i in range(len(p)): + sz[find(i)] += 1 + s = sorted(sz.values()) + print(s[-1] * s[-2] * s[-3]) + if find(y) != find(z): + connections += 1 + if connections == len(p) - 1: + print(p[y][0] * p[z][0]) + mix(y, z) diff --git a/data/8_2025.txt b/data/8_2025.txt @@ -0,0 +1,1000 @@ +93612,76992,69452 +4387,60049,8877 +43126,39737,84757 +30167,68987,19789 +92427,53000,95237 +38193,19273,23561 +54992,34511,43980 +11107,44787,52686 +35724,98740,19812 +28016,57751,86155 +93461,77703,78395 +94606,79586,97929 +67878,92289,42528 +38971,54378,98204 +66002,25958,89347 +40281,30990,67294 +25898,31190,14029 +85535,48773,26872 +10128,70597,46452 +68618,23612,85624 +79490,1682,569 +8828,51411,60251 +38583,16324,14091 +10437,63697,61596 +56370,26228,17029 +86199,8063,16493 +20471,66847,99889 +28748,63929,18749 +19248,83995,67615 +333,91140,79303 +59093,5932,49628 +65463,73678,60286 +87559,27061,41247 +424,28274,74202 +85572,19477,32761 +88116,2580,65047 +77302,37669,40015 +7664,30793,17676 +7152,87786,56278 +21754,53651,91511 +19205,97579,71254 +13841,24770,87922 +60676,26132,30482 +10161,34169,42397 +97588,95253,77422 +62674,99068,96065 +3701,85077,92763 +87646,99624,9786 +79480,48455,82469 +85485,88400,12789 +80002,63227,89969 +78922,68131,54845 +11326,3980,91289 +37613,85718,1487 +73551,87391,77749 +18494,53007,56937 +95754,20192,31376 +81009,94209,66866 +89029,86481,28533 +73124,31585,3562 +5647,86375,87389 +17667,62606,81057 +90251,13392,46704 +8922,53813,49554 +90818,72498,63116 +63706,12205,48645 +86075,45959,79136 +8533,98522,94830 +13261,87807,47571 +85512,34571,10686 +70830,45794,26572 +70838,85387,63507 +50514,2902,47654 +97257,76204,25909 +20663,49002,12395 +14787,22089,91493 +9519,20986,37182 +48407,1747,57434 +84550,61928,41891 +27065,7926,77657 +32551,75407,17933 +44728,48491,5096 +28667,99071,90157 +98892,74499,37947 +75619,55121,72752 +36135,20145,68562 +33258,19964,28963 +66217,41845,39708 +32152,82331,42510 +38241,71629,84071 +63645,42508,41998 +18010,23872,31891 +30919,69353,79552 +5249,74361,18723 +51253,57096,69531 +54551,72707,27442 +87816,89043,21120 +43115,24297,19479 +10017,68608,64216 +38916,98813,18429 +53460,96455,10528 +1528,25204,29747 +59806,11528,62206 +84940,6921,98186 +55,22445,44444 +48901,95321,2434 +36897,31163,71124 +733,10092,43971 +95769,23499,86894 +58488,65824,44700 +95535,95053,28430 +62042,11824,48380 +47371,59378,9083 +87851,59391,33276 +71416,91746,80466 +20986,14005,28560 +62877,91310,56300 +44999,12630,89580 +12814,17342,311 +75884,25052,43459 +17057,50968,25293 +8779,78959,17492 +37260,26515,88716 +93030,14321,95804 +51240,43987,47003 +19716,71779,92039 +38192,96721,59996 +3751,16201,26085 +23562,83044,98517 +21091,69932,70564 +17906,89206,87817 +15112,8697,39582 +50853,23583,25901 +4031,58523,46946 +29574,85339,94502 +2159,28840,67804 +64232,21352,6079 +69968,53511,19694 +64707,83228,92602 +68033,91486,5930 +88327,83351,44501 +48616,4913,23373 +64394,88985,96012 +7137,22829,95789 +61147,23131,27577 +9220,73362,24735 +77484,65386,87676 +19406,27628,27294 +36096,5448,80101 +41415,71615,96750 +49579,73718,75680 +51667,75635,2150 +58588,13959,21674 +3301,85861,9573 +39663,82812,63976 +77881,12060,64325 +32096,56047,49426 +87020,81590,63482 +11350,22612,68794 +34318,87015,28581 +88333,30415,72842 +14284,31669,98394 +91299,33003,98512 +50558,25664,87891 +45463,92120,88896 +78928,17342,53217 +85152,36483,90933 +32494,63948,13733 +79538,15123,59524 +13272,69237,88883 +71440,34646,36000 +70887,92196,70756 +86682,49869,59461 +87014,69218,96246 +85096,62446,58342 +47656,42067,94693 +76389,21187,19854 +98808,95119,66355 +56317,4067,58089 +62979,31016,54595 +95574,94910,44555 +92818,89957,30178 +88205,83421,11231 +98025,26158,67351 +34996,37782,12656 +7275,92020,69192 +61755,48578,74891 +91077,87591,13567 +47178,98753,67298 +24890,185,41055 +21656,10424,76098 +36907,5392,33161 +1196,87844,89911 +62084,33566,56665 +66936,13949,44242 +10287,7906,50612 +94242,25001,57410 +75412,1024,29512 +90851,87543,72388 +71747,19001,91980 +22967,72331,12208 +29687,34581,5318 +52323,58423,16852 +86287,3765,36953 +15503,61881,49607 +17730,83252,72329 +32791,46945,9909 +90377,15005,82108 +25088,43430,50889 +30937,67449,69570 +27055,70369,20047 +87796,33912,38981 +61308,25361,93385 +92140,77658,13928 +22619,38036,36441 +66615,58337,19579 +69481,81387,29719 +96348,68719,86050 +50514,639,29192 +75973,520,69761 +82361,79014,99108 +84447,68240,70851 +1603,1169,79818 +17505,5417,49001 +42348,26283,64808 +53052,35593,79353 +29059,44086,34246 +19705,32222,54841 +93505,73226,37229 +88280,88881,65243 +31982,61769,85501 +18942,69659,87848 +48747,77115,64412 +89986,59345,39585 +92036,77473,89017 +54927,93308,13866 +62414,96971,46218 +18054,44880,20543 +18191,85757,79281 +55277,56892,25137 +56722,15970,49886 +65888,61906,88954 +21214,43085,32786 +79619,24041,30679 +22962,60563,90448 +24703,43433,54346 +64964,61426,85237 +81713,50846,23776 +16354,44817,55696 +2131,92987,36071 +24669,58903,97840 +34050,79236,15174 +94757,87186,41770 +60958,81684,89389 +70618,56638,1431 +15922,77068,73670 +84295,36683,59806 +39229,8110,32311 +9957,37073,62331 +58126,91378,50095 +43938,84938,37934 +46924,27412,73996 +78529,43275,80069 +47252,68636,49729 +11419,1422,86133 +32065,82752,94710 +21983,2625,75459 +44369,40437,65291 +45830,99247,97279 +102,35695,58176 +31421,83303,74978 +58281,98901,45492 +106,49263,7938 +14420,24582,44323 +68568,24062,71612 +16050,65447,90641 +7423,8218,42238 +16769,75102,10654 +91505,32646,7194 +94158,35310,78925 +8512,2585,65102 +78362,24338,27827 +61073,96429,1483 +55466,2563,6915 +76849,20355,4244 +23720,88978,85697 +4881,40227,59389 +90297,3954,2223 +71850,58017,89245 +88343,36437,43379 +48699,55848,41462 +87085,80923,41276 +8190,65515,49515 +60930,91345,56495 +775,157,41546 +78449,37056,92044 +25226,37026,8384 +83556,2712,79328 +23265,52246,97851 +84479,51110,40981 +62886,35622,78961 +6523,92713,24122 +25314,54911,73916 +35030,4968,50659 +49041,83519,77623 +15167,26960,96355 +16247,64185,99408 +18474,61281,4969 +13926,31813,16094 +15725,68810,87796 +15464,46735,8813 +13805,10520,11814 +16255,71827,53917 +17481,74068,39973 +1780,6131,70717 +96873,33332,58634 +75700,9121,4357 +15100,24737,23182 +21595,73141,60112 +17623,46752,17930 +966,77550,1372 +23916,5486,61016 +58073,54435,99676 +63398,25454,22034 +11040,78676,89673 +72346,68534,60847 +86865,20480,28605 +10868,89008,17327 +9838,37312,78948 +9843,72664,46882 +25362,3537,55029 +25124,98455,46040 +67429,30617,65289 +50349,91411,86860 +88161,26971,2438 +55654,9333,21695 +21824,81354,24579 +74930,71845,25730 +31018,58510,74464 +63758,31045,74703 +66762,78487,4118 +51908,57077,1574 +36829,63414,74887 +70493,64836,64929 +67420,65219,8818 +67566,17153,99697 +31824,74123,30207 +56502,53943,35115 +17246,97907,98834 +68705,29666,71246 +27724,15999,56550 +60276,22366,14653 +46389,53387,87116 +3235,14486,91436 +49732,63892,87340 +87008,94331,58514 +32145,38609,71845 +64572,18666,90042 +12352,11171,65795 +50884,39309,7436 +72407,18819,32603 +37449,16014,50829 +50516,25437,245 +66137,40543,98203 +28102,29674,6025 +55921,37483,59917 +80575,24800,7675 +44559,17720,81000 +21868,4371,65769 +34785,60526,44642 +5726,52286,31034 +35566,72914,82787 +32070,85672,66017 +19110,93664,19934 +53538,56804,28502 +78852,78651,65871 +99691,96705,52190 +77702,9722,56604 +96505,53849,9751 +85655,28788,96526 +96697,6837,96685 +83162,25825,24329 +48579,28766,854 +88152,9279,65839 +83244,71777,64273 +67540,72397,45717 +33581,56860,73496 +41361,43101,43910 +77896,55800,6729 +11660,9790,41267 +97909,44466,33924 +75949,72557,25770 +2834,8126,65868 +9551,65106,23021 +16497,40985,62744 +2394,85493,15918 +13869,86996,34945 +7314,71681,76769 +8314,17091,51115 +21559,78084,38617 +23289,65563,77867 +56384,16752,25872 +73173,27198,18275 +14487,89322,53052 +43042,74199,19715 +79730,3967,66686 +49193,63676,8674 +75653,71020,71125 +76566,82061,60310 +62574,19011,34913 +7784,78818,4837 +96246,64285,64844 +28376,38429,5472 +29362,65551,35253 +86883,51698,98020 +24309,19686,76751 +79120,49475,86875 +21875,26909,80928 +26647,97704,47621 +81672,4744,85242 +1531,59200,59569 +32899,26845,37534 +44049,35082,85646 +76568,75911,25179 +8965,84562,95316 +84091,11217,36912 +75391,5840,53123 +65257,29963,25808 +37711,89932,64085 +58313,77455,73975 +50094,87928,18598 +5972,26111,44908 +18007,13342,78943 +76931,50984,47834 +21067,16782,67472 +15702,16241,74410 +87250,79827,72823 +39856,29885,87881 +63010,34722,55942 +66094,53196,60158 +66103,13376,41069 +50817,73301,75220 +92689,896,59366 +25127,93940,535 +26486,26180,69703 +30551,201,44121 +57951,59180,74903 +81875,39479,66376 +75608,64370,34924 +65874,46991,20843 +64546,80899,48722 +53139,81240,60912 +6408,95126,99539 +60382,32038,26842 +51897,69343,23769 +12903,64987,23678 +89816,57639,2794 +91943,17916,68132 +17058,47490,53424 +63508,59639,78981 +24149,76305,83221 +59786,97124,35477 +7654,4401,5943 +65324,87395,56976 +1254,59660,42700 +28520,51382,13607 +32395,72384,24714 +98919,51493,35815 +85861,23706,42361 +73727,19357,9192 +56244,61066,88568 +69022,93334,95441 +45135,78907,67376 +71905,21859,53682 +76240,18122,86744 +96451,36880,58724 +69809,81170,43323 +91766,30035,70211 +94430,93928,35098 +36019,86391,62142 +29610,48551,78565 +61687,61798,44674 +83243,280,87775 +12879,46004,26625 +35774,96599,27266 +54000,69437,46041 +53659,5289,64037 +74733,24414,37294 +97525,10350,59878 +27775,49801,65616 +1659,48519,9189 +4829,84196,28561 +60895,93831,21468 +61573,4274,9651 +98125,85369,35792 +52818,38024,65559 +84495,67225,93469 +32787,83707,84703 +62567,37936,64206 +94030,89183,13432 +13072,95484,27690 +23734,31846,65035 +92988,93579,66115 +78711,53315,59155 +54913,63455,29728 +62483,46401,60745 +20788,21695,50675 +42551,84909,54997 +852,73770,55668 +10942,89879,3343 +88911,85683,58125 +8888,4740,64248 +61357,52361,84989 +59211,31184,957 +68198,89759,1696 +66912,82567,26659 +63452,49304,14117 +55562,86015,61863 +96167,90245,35196 +83946,59012,8249 +83464,21575,9933 +20029,49554,45712 +45708,6745,4125 +33357,87835,35297 +86141,60426,87671 +48011,2841,34713 +70487,20646,44208 +52285,77621,30036 +59856,65624,60884 +92153,97045,59609 +77434,44541,28160 +99278,3474,2582 +44670,87341,16251 +16908,23106,9882 +3599,76235,82771 +55003,24153,14048 +31115,24573,17690 +93842,2483,76226 +19930,22308,31182 +97987,68482,5762 +97753,36572,53143 +56946,55429,42606 +4114,37864,84931 +20033,73108,2340 +63076,45812,25089 +68562,32600,71420 +60368,97785,65980 +5445,48961,97781 +58844,71797,9869 +77623,23298,19643 +68939,99057,77762 +47164,99255,46365 +17824,73903,89733 +44488,67436,26816 +10626,19619,37213 +78525,91601,18913 +87482,17097,99480 +89825,9580,23005 +81850,94513,95910 +58710,20827,82163 +84830,30431,42014 +19885,2222,91325 +29036,50455,10625 +14579,68427,88723 +46506,57905,65480 +25501,25015,65137 +34126,92382,12760 +42990,35933,69002 +76547,12396,70799 +27867,68712,54134 +58345,5062,87052 +51715,80934,28246 +74189,23723,30837 +98243,92321,40231 +42351,5969,15336 +29632,29612,22258 +31543,13513,60004 +51272,2995,7475 +96993,16572,7646 +8241,53230,7612 +20137,54640,20893 +59566,7551,18524 +40530,53994,15411 +6874,38747,96386 +60096,17731,1885 +21358,47158,57995 +48040,27043,44231 +90293,31220,5002 +87034,57231,1922 +47580,56506,51457 +21645,43851,33340 +50203,31461,99819 +29924,64669,80294 +48937,97069,87025 +56459,76682,90702 +39922,84072,64788 +56086,33603,60174 +57079,95782,95195 +93093,10317,85610 +4553,96124,53294 +70238,97923,20386 +76705,37902,51495 +18376,89053,50239 +43721,95653,31712 +97543,903,77076 +63809,98240,32449 +19598,27244,51311 +58861,93737,38995 +46246,70148,17082 +44972,2348,38868 +6647,2768,40251 +59453,62399,43434 +27211,23165,55801 +31210,4420,40809 +67954,89265,21307 +38157,58874,65993 +17047,12135,98851 +65082,3379,10087 +14995,71193,92046 +85554,218,47029 +52869,68400,61476 +15245,89469,36381 +1523,36104,35383 +81169,162,47941 +36480,61750,92719 +9137,30924,39406 +4656,6959,26256 +94128,50715,27623 +17165,55297,17490 +93520,76418,8404 +31533,5640,75764 +3115,47128,2667 +70908,20297,33409 +91667,83564,10987 +78738,79975,79614 +98601,79197,63374 +22489,6709,19769 +3661,48606,4034 +62587,69293,92052 +31430,11646,58643 +80493,23478,52020 +76806,36625,61325 +52254,77479,79176 +89958,48556,1961 +5928,19241,90408 +71968,16233,65908 +49587,3396,51724 +15836,73105,68814 +87142,20107,78921 +19987,26258,32877 +47137,5614,19848 +88710,50130,58513 +12385,24867,62286 +88852,6913,44817 +21656,66145,71816 +13390,54530,54277 +557,41725,27372 +30345,90380,49797 +95541,28277,63610 +15296,61358,32017 +96483,11065,83679 +31183,4570,40265 +69674,28710,2052 +21841,48430,57641 +20947,65038,17338 +39281,94409,83606 +53035,53090,82421 +22343,46641,9487 +37999,11874,10825 +28891,74850,94585 +87115,56628,33382 +14619,74286,45544 +39133,78470,91243 +42199,76781,37404 +64919,33295,42593 +37280,99390,75546 +99850,21071,86687 +12561,14737,51205 +82463,8628,46379 +66413,6177,22765 +64129,76197,71439 +42257,60362,76910 +88537,67489,68630 +38,59181,27553 +18122,55369,49886 +36309,97303,40682 +51847,12862,36119 +63247,24005,69216 +79104,66384,54736 +56017,25641,12457 +44064,88259,80773 +29737,522,94568 +45720,48619,8513 +32824,94363,98444 +66637,42496,26435 +2012,34374,99911 +63462,34544,82946 +60906,96191,27861 +889,8875,96367 +20701,850,32374 +48614,31194,51795 +81219,24377,57375 +80635,53805,27351 +73080,55463,50428 +63827,57808,55144 +51107,90419,84912 +18717,94186,31613 +49169,44719,10443 +39615,75279,12347 +11964,45685,47665 +30923,15472,65080 +5,94188,54596 +14379,13017,44646 +77743,60302,80107 +9067,49328,81390 +3402,88018,48284 +8590,94702,4002 +53713,46872,45856 +88918,2415,28532 +46287,21781,14851 +29324,9071,81874 +96983,92983,94390 +26328,6604,67828 +15607,19849,9427 +3777,80212,69260 +66785,89681,58809 +47599,81474,12698 +19680,28606,58721 +84565,96029,9266 +6807,28162,25245 +37858,37187,33146 +74215,20317,21602 +36577,27799,76382 +7377,35371,6580 +7134,79656,97584 +9214,10648,27402 +71686,59728,6298 +19675,43121,23335 +59814,19764,9046 +29503,20036,61270 +21728,78643,8960 +25275,32799,80768 +44283,98410,81536 +79332,8520,54150 +45424,1453,21479 +94250,78055,73228 +79489,63243,23534 +74398,21497,19692 +26191,34756,90513 +15902,65731,1896 +20962,19514,89850 +19048,85210,61442 +95612,27282,33774 +34539,17019,59356 +15886,4956,6561 +85554,43774,56068 +83399,44069,83268 +24967,47996,80688 +4261,39672,3487 +1927,90969,36407 +56341,31181,98469 +59463,4377,44429 +98081,89435,28196 +47337,146,41069 +34676,62991,93667 +40830,18095,3895 +33969,71800,98522 +55019,22833,33982 +18690,49810,11880 +49895,63070,57918 +65670,75982,47329 +86680,2893,7573 +5834,19741,15335 +84314,61210,54625 +38876,95177,55552 +93526,89293,47002 +17120,25610,64975 +86677,14247,90832 +22687,49968,65263 +33489,61528,47384 +24128,84568,80402 +32790,66977,67469 +31024,33923,53791 +70747,28366,81550 +50357,79826,64276 +19955,61357,45034 +76265,15144,70455 +33272,27568,76909 +84054,28474,14905 +81452,3560,64204 +2995,78946,98322 +56789,88645,28228 +55217,64868,79116 +53070,48551,745 +68657,22409,8500 +19161,61390,32918 +90698,82905,97853 +5723,32433,63684 +34840,90469,60825 +56921,24222,16744 +29618,35579,65053 +13778,57959,19521 +25635,79962,26765 +11711,67792,70774 +25724,32520,56341 +60970,2201,40013 +12431,49332,27831 +42375,12958,13514 +370,13074,49841 +91947,38771,98238 +26114,98967,4911 +36520,71551,49807 +12961,85927,32810 +41687,29135,297 +13647,65415,53114 +14884,74124,94717 +55608,71741,17940 +93046,29518,14342 +74408,38008,7480 +28472,49579,78045 +30644,35566,90190 +1309,18579,30254 +97408,9395,71712 +37963,73038,17907 +9746,1554,53649 +17312,72556,34581 +30416,98565,14025 +67271,28750,53687 +89089,94797,85638 +5584,98314,42396 +27573,12427,67217 +9685,20315,45779 +5783,89296,50119 +7395,30,59651 +59962,33958,16528 +86075,23394,31491 +63546,81157,1594 +79123,11575,47557 +18756,75540,70443 +72748,68961,58742 +81525,73484,89742 +21011,49906,40935 +73943,81252,41073 +70776,51604,32224 +80561,65802,5922 +51505,27172,13520 +26382,9698,48756 +2966,37811,41624 +64790,93568,62536 +11099,33411,14293 +82091,74600,4338 +65085,60858,10082 +10035,21650,50785 +63805,33377,24475 +21382,39590,34505 +97345,3372,97760 +70419,80414,3046 +69513,27185,34584 +45800,92516,45439 +35481,65400,79823 +29374,6114,11941 +14303,82901,68795 +41717,69307,75349 +56279,66633,83524 +1428,66470,56206 +12553,6733,20622 +86659,41648,61379 +52033,36683,50080 +86318,10074,13631 +45812,45986,76341 +15567,44527,88436 +8379,59777,5722 +32237,18036,35978 +93679,5115,61935 +29374,36888,40254 +40168,44291,77176 +35156,24957,90910 +41864,98051,46439 +55645,27893,16675 +59670,98073,46841 +22314,81305,24733 +61273,22761,81192 +11266,14830,95245 +22284,40607,66310 +64598,79802,15581 +28610,12550,19851 +91295,60386,36743 +49527,66039,86751 +88255,50623,11696 +36872,95176,1262 +16382,84203,28357 +62874,36513,89144 +80390,41087,3818 +28934,77608,84891 +50028,68867,41659 +97663,86772,45290 +17334,17423,10170 +86813,9459,20678 +7354,26123,3088 +34601,83872,75235 +82487,85716,87179 +74872,55822,94773 +67775,20758,74726 +1637,23257,96839 +70086,38606,11329 +37333,4381,74577 +96787,23125,65361 +16240,10806,28282 +45777,86620,58681 +36901,96007,61808 +59798,96493,52712 +14613,28066,56986 +22873,73388,8548 +83152,66623,6706 +89253,53707,70248 +63732,55857,79585 +33389,99411,36126 +30138,88565,73193 +33385,56862,9781 +79007,32407,2149 +20654,78581,52328 +45915,25675,21594 +7534,54164,58394 +33997,15513,56367 +84919,21671,57105 +64175,41950,67051 +24936,26061,83072 +35451,62404,35874 +88295,14526,66310 +51289,61271,70041 +67716,12185,49570 +93006,31081,47748 +48016,50057,50060 +6631,7960,36378 +78124,51652,45315 +84586,11610,77166 +59601,95521,21125 +38937,84911,35085 +39499,37095,46732 +93972,71312,67295 +8864,15288,17706 +23399,15100,53520 +72344,82783,41899 +45766,36673,75853 +19760,87756,29939 +25227,74446,3738 +14331,10331,24476 +76223,50493,23898 +18356,62271,85875 +53608,20015,32714 +83392,67440,55013 +68424,46958,45601 +19431,26823,16321 +38932,60197,69781 +40297,68548,88034 +2968,29193,15002 +92059,26056,54737 +54184,66310,1075 +95784,57910,81595 +75602,59936,8544 +72249,27430,48332 +55862,41522,43934 +414,95763,96341 +33017,8463,42855 +51476,85018,43369 +60252,91356,87437 +36938,80351,62343 +84358,62436,51394 +88131,91800,50091 +75336,70492,41687 +91456,89983,51215 +17937,73395,45724 +80843,13138,64230 +49657,60368,32741 +56682,33989,9564 +73621,44474,4935 +63853,84785,75892 +29391,81042,4538 +31349,63646,21745 +55645,20057,48322 +51551,58220,79615 +21562,48950,99930 +1841,5768,17379 +40557,47811,27557 +20849,49275,68348 +44177,45015,99771 +15266,88740,35835 +22445,30430,59975 +68881,21591,89341 +76719,38478,66227 +73301,82485,38111 +8828,57991,18536 +94665,49942,59110 +15225,58083,66890 +29518,68804,75755 +50130,82904,45313 +63183,52674,91427 +97487,63178,89472 +3968,12975,47549 +22818,54619,79778