aboutsummaryrefslogtreecommitdiff
path: root/2024
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-12-03 12:25:52 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-12-03 12:25:52 +0100
commit2586844a875720703e614138297f10e45ce94735 (patch)
treefba9fa0f4c8bd6662c936d1d008ce1c51ff1dc95 /2024
parent5efcc8160c38889eaa70cf2f10089e9d2d1450b5 (diff)
Add 2024 day 3 solutions
Diffstat (limited to '2024')
-rw-r--r--2024/03/input6
-rwxr-xr-x2024/03/puzzle-1.sh7
-rwxr-xr-x2024/03/puzzle-2.sh9
3 files changed, 22 insertions, 0 deletions
diff --git a/2024/03/input b/2024/03/input
new file mode 100644
index 0000000..bdd4ae0
--- /dev/null
+++ b/2024/03/input
@@ -0,0 +1,6 @@
+}mul(620,236)where()*@}!&[mul(589,126)]&^]mul(260,42)when() when()$ ?{/^*mul(335,250)>,@!<{when()+-$don't()*'^?+>>/%:mul(422,738),mul(694,717);~;%<[why()>@-mul(417,219)?&who(474,989){select()-{#mul(366,638)mul(773,126)/*{mul(757,799)]when()mul(778,467)^mul(487,365)]*'{where(952,954){?who()who()when()mul(172,666)#<do()why()~&why())'< {mul(33,475)}mul(916,60)what()?when()>?$,-mul(250,228)(]when()}<mul(817,274)'{})mul(836,930):@how()]!@'select()~?mul(514,457)from()&what()what()when()mul(872,884)select()<select()from()'!who()mul(11,966)/from()(~}#,(*from()mul(941,908)#>mul(760,139)mul(892,161)!'@[%when()<(mul(775,872)+~#)//$select()mul(946,63)how()??select()?from(277,915)~'mul(637,565)~mul(881,294)who()what()}mul(995,866)?mul(952,57)who()mul(387,599)mul(46,724)who()[how()select()mul(992,19)'~mul(909,687)where()mul(953,804)from()/;where(474,270)from()}mul(907,410)&(&what()%{mul(192,898)who()-,mul(196,400)#--{%]how()mul(144,141)~@[when()!%:[mul(377,942)^*mul(89,46)who()<}when()?!'%mul(172,448){]@mul(351,18)~]&!$mul(490,127)/]] }}mul(851,465)when()*-why()what()))@+<mul(465,978):*>^<-select()do()%#+;%:mul(549,307)<where(154,242)(;< /who()mul(426,943)mul(477,782)*?do() mul(745,445)@ (how()$where()mul(118,902)when()when()}!how()don't();mul(523,781)mul(350,886)!}from()>#mul(968,958)mul(125,903)what()who()$where()%who()how()mul(139,859)<&/+how()mul(339,100)@(<?select()+))~mul(548,608)select(166,582) }where()$how(),mul(21,567)from()mul(798,591)+-;][)from()mul(398,197):<why()when()why()[mul(296,785)where()%^(how()select()&:mul(833,729) <# ,mul(858,55)}(~{<;how()^mul(789,160)^where()'mul(320,473)#&mul(281,366)?mul(415,485):::[mul(550,20)[don't()what(){who(197,721)when()!how(748,315)&-{mul(109,947)?^]({mul(915,217)what(),],what()<don't()<-/^<:<mul(264,899)}^from()%mul(137,563)?select(478,659)why(857,355)(%*]~mul(563,802)$&when()mul(121,341)from();~what(495,238)'from()mul(533,553)from())<!+{'&]mul(605,211)}why()select()(mul(607,201)</&how()%-what()?<;mul(592,310)$^(:;%where(873,478)~mul(565,816)mul(52,983)select()who()>:mul(306,909)?)--what()who()/)*mul(724,497)'how()from()mul(489,24)${/%/:how()>(mul(397,282)}?from()who()$/'mul(86,511)mul(463,903);(^@mul(302,904)-,who()what()from(892,368)where()-mul(707,359)/who()/';;++;mul(687,987)^:select()select():mul(915,123)<]!:'/[select()mul(809,835)why()when())* mul(139,828))why()who() ,mul(807,713)where()><?select(42,854)what()*don't()%~%&mul(363,160)%$~don't()}+^#+,what(296,891)+when()mul(672,112)/}/*?/,mul(185,994)from()]-?mul(233+mul(234,464)((,how()* mul(647,845):^$?$#&~mul(994,732);(from();+how()mul(581,905)mul(458,49)from()mul(539,976)@mul(28,592)$ where(777,812)>:mul(350,287)where()-where()+:~{who() mul(437,102) %when()select(),mul(813,883)]when()>(from()don't()]where()@/:how())'#mul(337,905)*>>*!don't()>(+}:mul(488,283)<~<what(),>>mul(703,476),what()@(} mul(487,921)from()select()why()mul(761,203)who()how()mul(32,930)[how()do())/}where()mul(778,306))mul(593,810)mul(629,319)';$mul(122,109){ ^^-mul(720,536)?!+mul(519,541)$'/@who()!~where()$mul(461,98)
+$[mul(647,228)^why()how()>why()^{mul:from()%who()/$%}%mul(810,82)]^+<?*&'mul(191,150)do()mul(460,419)]mul(349,490)why()&from()),)~%}mul(279,311)mul(632,181)$what()~,+mul(857,4)$select()?^mul(114,490),why()],]#}select()^don't()/$mul(502,531)!(when()+ when()^mul(923,724)<:>[mul(377,189)){&select()/(select()$$mul(343,443)who():-don't()}how()'how()]:select()why(){mul(963,385)/^why()who()^mul(131,676)mul(113,570)~';*mul(853,789)${>%{:](*$mul(736,139)??%^where()what()~]mul(447,113)don't()(^;select(921,651)<[#why()mul(912,658)/{&from()where()-what()why()who()mul(587,480)]!how()]from()mul(389,102)'@mul(200,564)>#/,#;mul(24,400){):,!+;];mul(595,551)!who()how()]$select()mul(969,989)/?%mul(899,264)@what(507,249)&mul]~*mul(354,715)>,mul(914,563)>'};~!select()don't()&{mul(50,819)select()@>:+ when(501,666)!mul(970,506)who()mul? }~[when()%mul(358,287)!mul(291,276):#what()::mul(946,666)'??;+'/>'mul(31,79)~#*}#-}/where(532,773)mul(919,720)where()@^<mul(970,193)mul(439,354)<^::why(){where()what() mul(427,831)??why()what()[?#&, don't()select()how()when(694,382)#)mul(353,771)where()@mul(524,353)'from()}how(){#?mul(737,977)#mul(73 !&&}?^ mul(977,323)&:/<mul(744,883)*({mul(49,407)how()]<+}@when()/}do()mul(556,662)?]mul(134,496)+?{{@mul(162,240(!~select(287,764)~/when()mul(520,269)?;how()&:{),,:mul(13,440)'select()'{mul(859,860)what():who()+mul(448,184)&-!+from()%$?]mul(707,90)?/,&why();who()#(/mul(428',;-mul(662,231)(who()where()when()&:<mul(896,482)&what()select()mul(842,701)where()?,<who()-mul(590,699)where()>@]&#how(){^;mul(561,111)^&^? select()[why(803,159)(*mul(716,153)};{]how()[#+',mul(883?:from()why()what()?%]!why(393,804)~mul(231,805)how()when()why()@select()mul(552,136)$;[!where(454,987)who()what()mul(555,591)mulfrom()?from()^select()mul(467,281)mul(702,811)}}{;don't()[mul(543,7)from(608,658)&^?mul(144,343)from()who()-?<select()*^+mul*'??why()^^^%mul(982,231)who()/+select()+?mul(964,717^<&;)where()where()]how()select()?mul(312,551):mul(587from():}where()why()# %mul(973,85)&-)when()why()mul(321,137)>&don't()mul(860,384)where(611,825)%&+,^{<mul(540,230)]]from()$}/select()(*)mul(747,508)select(323,184)/+#?mul }!<-why(689,967)where(833,654)-]-mul(474,335)+{mul(748,138) <?#[))%mul(973,899)where()@{(mul(252,461)how()+mul(278,445):mul(432who()>where()@select()%}%what()}do()/who())}where(740,982)#-why():,mul(523,265)+select()[):]when():mul(200,994)}when(436,935)<%;)&!mul(156,920)when()mul(822,281)~>mul(3,591)when()*select()$mul(993,139)where()(!$why():%<where()mul(315,53){,when(533,723)who(){mul(561,236)@*]why()why(390,506)'why(868,612)~how()mul(774,675))%,%@select()$[[who()mul(366,787)/[{'/do()/how()'when() @/mul(295,622)from()^mul(180,419)mul(280,790)who())]what()%'<when()mul(909,222):*]where()don't()why()!~-mul+^$how()^[mul(98,91)what()select(611,630)>+from()mul(167,958),;select(579,937)from()?{?from(644,816)mul(675,905)why()mul(787,123)%mul(982,476)~mul(613,499)#;)'mul<who(664,651))&mul(461,433)]< who()&mul(418,980)mul(835,479)}mul(852,92) who()who(859,651)~>how(280,254)mul(393,812)#mul(54,319)(;what()%/@(mul(23,133)mul(401,60)who()$mul(615,621)]@what()$mul(77,795)from()+{!+!;mul(935,990)select()+!>mul(843,623)what()]$,/#)/mul(374,785)@ /don't()how()%select() -how()#who()*^mul(113,822)from()%what()/from()mul(305,505)what())<&~from()mul(841,37)when()#(select()& /mul(879,852)]from()/mul(485,947)?where(276,795)<how(538,951)when()mul(17,660); mul(209,54)<+;from()mul(108,833)~where()*{<mul(312,605)(?#*what()(do()mul(776,879)
+!'how(307,641))!,do()-where()^mul(603[%^where()mul(320,196)*?mul(722,924)<, ()select()mul(356,881):/mul(395,986)what(),;'(@mul(989,545)~$]from()what()mul(585,894):!<#what()'when()%how()>mul(197,752)?;mul(926,356) mul(701,87)who(66,480))~who(514,148)@!mul(533,170)%!+mul(983,219)!&$]@ @ *mul(409,813)/)^>@{/why()?mul(411,364@$$:mul(367,910)??what()+~ > -mul(475,252)from()]/])%select()~mul(726,104)when()&&'/mul(463,124)where()how()(!<?/mul(832,80)@#,mul(832,720)how(224,26)}why()what(270,175)select()from()mul(499,120)>how()[(~[%-&mul(487,73)]]/mul(818,611)~<when()?%-mul*!#mul(911,620)$-{why()mul(518,885)mul(73,477)%]-when())'what(),~mul(426,102)>where()&what(){$'mul(669,330)}(mul(14,255)'<how()!who()/when()&<mul(775,662)!who()#;select(685,5)mul(919,422)~%select()^!>(why()don't()%$mul(748,857)+)<:don't()<]-'[mul(205,925),/ select(),mul(611,78))%where()+why()what()])$^mul(922,30where(), :do(),why(),what()$when(){when()%%mul(788,912){&!*what()what()#from(550,915)mul(414,182)!how()who() select():~^where()mul(361,64);,when()$?why()<(why()mul[<mul(715,19)/<{$?<mul>}when()/&?mul(404,92)}from()!(where()why()mul(162,794)mul(156,595)&&what()/#~'<@;mul(619,461)}who();what()$%who()>'mul(84,893)*how()!>* ;:[~mul(904,58)when()>~mul(397,193)&/<]{<(;^how()mul(835,565)select()][?mul(179,388)from()*<when()#(mul(711,179)&?<@>mul(590,514^~-[mul(141,691)[!how()from()do()select()mul(662,493)who()mul(852,288)what(289,959)from()&%){mul(388,80)<;)mul(129?$>:;![mul(838,473)%'-~mul(521,965)!<from()what()from()-]why();mul(461,646)](,;/how()>mul(301,798){when()/ '&how()from()>mul(412,607)~~;~>who(759,414)mul(505,681)]why()&>mul(11,690):]@&where()where()!}how(){don't()^what())mul(896,34)(]when()+]%from(676,897)mul(352,130)}select():(how(962,114)$-why()how()}mul(346,43)where()select()}why()don't()< mul(253,930),how()+? mul(980,251)from():where()}[,mul(824~where(837,118)-select()/mul(389,969)& )!from()from()where() mul(477,689)#select()!<how()}mul(377,632) (mul(343,787)from()where()where(624,476):~@:mul(301,370)how(686,708)select()how()<,!mul(967,561)#how()[^;when()mul(89,996):<+* ^mul(28,376)mul(679,215)#%]mul(870,800) ;^mul(143,485))(mul[-*}mul(624,410)#[where()from()^#select())(what()mul(737<%mul(614,694)}{mul(323,556)-where(698,197)when(393,268)'mul(860,559),?mul(814,873)}:}-%+mul(891,950)$$>^how()mul(270,320)$@&,-from()<mul(337,419),^mul(799,404)what(){'when() <;]don't()~<>mul(505,37)what()!who()+?,don't()from(644,533)@&mul(946,497)why()where()+select()%$@mul(985,698) :[@/do()mul(634,683)from()[<&mul(471,76),)from()(mul(765,236)where()[}mul(103,839)<where()select()+,mul(508,807)>)')where()+],(mul(415,82)?]how()[/mul(545,345);~(mul(717,102)from()@>mul(873,432~[[!{mul(407,39)>{~%where()*mul(66,512)mul(408,714]who()when()don't()why()@@'{/:<mul(570,548))?{@how()'$<!mul(331,920+]-+why()who() why()^~;mul(553,675)-%<@(@/} mul(711,263) #,@>mul(823,809)what():]mul(501,427)mul(667,732)from()^from()@;mul(84,235)?}%from() : #mul(788,725)mul(140%>}[where():)when()mul(693,122)'(?+]!!mul(644,111)!+*-~where()select()+*mul(366,69)*]when()&^({)--mul(931,970)%~from())]{<@@mul(983,532)]&^]+who()!&$mul(558,679)(@who()where();^mul(140,309)how()^don't()'who()>('*mul(83,388)mul(421,988)@::what()mul(385,22),)%:}who())/mul(754,201)~{when()mul(606,345)-[?]mul(762'from()from()mul(502,876)select()@,<{@]mul(595,401)**select()$mul(669,55)~~+(,#!/usr/bin/perl&(mul(621,865)[select() -+select()how())mul(852,28<>-what()'mul(808,223)
+>#@<select()*&who()[mul(814,761)},+select()what()why(658,435))~who()who()mul(879,682)+!(%}$mul(181,342)when()~,what()where()*>,mul(49,51)+'+ {what()mul(459,620)mul(676,939)mul(785,481)[%,how()->#when()mul(941,842)?when()who()mul(626;don't() ##mul(369,396)why()why()mul(18,620)mul(660,703)~$don't()from(891,902)mul(624,59!!+mul(881,448):;mul(103,918),>}why(295,520)?mul(975,493)~where()/mul(500,773);&/what()$);%>mul(574,896){when()& -{why()!mul(767,832)%^^?mul(176,339)^$?? {?>mul]+/who()<}~why()select()when()mul(585,105)mul(326,283) @select()mul(881,190)@(,[@$[-!:mul(978]how()mul(244,274)(why()mul(107,435)~<how()^:/'select()select(537,988){mul(679,948)]when()-'<how()from()##mul(719,859)from()*;%)when()<mul-^{mul(268,333)/$why()mul(49,579)+#[mul(656,687) when(),$(why()mul(971,997)~)-how(508,336)+*where()mul(158,533);>'@}how()who(),mul(514,868)select()how():;/mul(371,314)how(683,764)#%~;where()}<do()?+&>why(),mul(630,194)+,-(how()mul(556,839)!@]:how(904,253)/+)mul(949,374)'>>~@what(702,586)how()mul(93,979)^(who()})${mul(500,125) mul(554,209))[where():/where()mul(489,287)#when(),&',mul(857<mul(353,900)&(^+}'why()*@}mul(606,807)mul(8![what()who())$${)mul(835,964)mul(580,757)]>mul(735,380)*!<&{^mul(908,597)?]what()who()mul(830,216)~'mul(131,112)mul(214,624);>[ why(727,278)from()(*mul(277,717,{how()mul(491,389)<'mul(308,352)*#mul(473,610)(#;#mul(96,433)-what()how(893,680)where()]*>mul(15,226)*}do() &/;[&<]mul(570,554)(:mul(162,708)where():+{^when()who(195,632)from(512,233)(mul(735,501);mul(47,211)}^$how()~do()#+@from()mul(403,568)~who())<mul(675,223)select(36,321)/{mul(570why()who()-from()when()mul(355,402)how()'''/mul(172,474)/mul(907,382)@from()/{'}when()#where()!mul(769,260[%>what()from(519,688)mul(479,938)why()')?['mul(912(&~(don't()%why()%why()]<mul(310,686)%*who()'where()mul(116,766)?,+~how()$?when()mul(426,166$^+]mul(665,324)(:where()+*,mul(990,700)who(48,101)<*}mul(308,613){mul(287,917)mul(568from()^[+? mul(301,15)how()^why(),@;@mul(220,76)~~-'why()>>mul(901,522)mul(236,396)-,who()what()where()%#:when(738,307)mul(638,827)%! what()<?&{%don't()?from()}why()who()^select(347,721)+who()mul(770,663)]-!mul(705,510){mul(76,924)*--do()mul(18,557)mul(413,86),>%^when()-don't():mul(69,715);^who()select()~who()+what()mul(483,819)<from() &who()*>)^/mul(692,711)<>?,,who()'mul,mul(45,587)why()}'select()/[how()-what() mul(623,228)-?'>mul(738,552)%>!/when()?[why() mul(364,106)'when()^who(382,157)who()&>mul(417,796))where()(mul(792,820)[from()(*/*where()%mul(504,794)mul(342,18)@'how()mul(929,33)how()}mul(336,88)'+;where()}mul(114,443)why();when()[@!'when()mul(66,853)]select();(&$&why() *mul(255,88)#*when()^mul(118,466)when()/!')%from()mul(396,750)$when():)-select()~mul(711,817)who()~ ,]select()**how()mul(531,995)from()mul(816,42)mul(801,817)'?:;'~mul(830,904)%[/why()who()-mul(296,626)/^~*where()+(+from()mul(311,114)mul(266,973)~^)$--,:mul(372,293)!+,what()mul(376,438)$/]}~,@>{mul(324,122)mul(207,152)'mul(568,638)!>[,>+/>>mul(514,968)why()why(8,771)who()~ #>/?mul(190,876)!mul(70,561)who()how()>mul(265[/where() from()$why()#^mul(101,15);$^from()-!mul(570,448)/?(]who()/how()$-{mul(621,492)@?don't()who()}>*#mul(659,911))how()what():)<(do()from()-)%mul(134,954)select()mul(572,608)why()-)$+mul(392,779)
+;who()~mul(268,986)#/from()],}mul(632,679) when()select() -& select()~mul(707,831),^~*from()how(),[mul(210,504)why()select()@)who()mul(188,858)$#;select()mul(828,586)&#where()@mul(48,75)$#+!])what()$mul(899,170)#$ from()mul(786{?#{~%@:mul(96,375)[mul(958,29)what()&where(203,927)>*#)select()-*mul(519,379)why()]mul(750,986)%+;#when()[$<[mul(144,674)*^who()mul(523,649)#-mul(48,556)!@~)/@->mul(170,217)mul(628,552)how()<how()@!([mul(201,642)who()who(671,521)){^[mul(707,964)^-,~^/select()where()how()+mul(930,602)-?;<&}mul(510,583) *?:'do()(^who()+&!!mul(447,765)^}(${&>};mul(433,161)when()-,/%'what(891,571)mul(797,743)from()<<who(993,622)*mul(597,762)mul(298,716)where(){!%'{?mul(834,555))!$^(^mul(262,528)!~ {&why()$:mul(348,753)}:~~,mul(290,118)mul(607,348)how()why()%mul(121,228)mul'mul(306,751)where()don't()}# mul(142,845/];%select(368,615) mul(912,816)mul(584,777)#($mul(114,115)'(&-what()#,mul(503-{{from()/<why()select()]${mul(731,12)-+~#how()?select()$$mul(112,678)-:&;'<<what()[;mul(641,367)]%mul(759,78)mul(924,998)'%?%]'*mul(932,409)mul(356,963)'what()],mul(739,202)!?@+^*@don't()~mul(943,443)^;)mul(673,916)*!when()/&%~,:@mul(598,262){@*[&>/^-mul(412,25)when()<)??}:*mul(409,767)how()!<}[)select()!,,mul(978,831)why(5,443);[{-mul?from()>@where()>mul(596,740){#mul(853,990)+:when()#/{<mul(88,36)>mul(418,161)[:why()$/}mul(728,815)*mul(448,232)#+why()/~select()mul(798,812)what():(mul(305,330)where()<>do()# mul(485,702)$@what())mul(33,730)^mul(250,103)>[/}from()who())}why()/mul(580,640)~mul(39,871)/)@how():where()what())~mul(66,708)select()where())!)when()+:'mul(886,576)from()(when()]mul(664,110)^why()($ from()+(@mul(301~select()}:mul(198,8)^![mul(558,124)mul(271,988);<<[//-&mul(79,763)+ 'mul(389,9)(select();-;when()mul(678,773)+,(}{-when()#@mul(522,262)]don't()what()[<%where(412,191)*:(mul(522,99)#>+*where()'mulfrom()*}who()how())who()&when()mul(809,282)(&how()?mul(389,999)#what())$why() select()mul(646,75)@mul(864,690)}mul(951,939)from()%where()mul(957,667)? >/]mul(22,31)?,mul+mul(970,622)^^{ *-^%mul(166,954)when(){#from(178,855)]mul(697,375)<:*@why()-&why()mul(745,382)$>how()@^%why();who()what()mul(501,986)why(782,397)[?( mul(491,604),(mul/,@*##<how()why()mul(790,97)mul(144,289)$]<what()+)? -how()mul(493,148)[$#where()&%$select())mul(271,883)who()%mul(229,858)who() &+^,$how()mul(234,370))why()>]++where()<}mul(678,467);-+how()/do()/)?$what()mul(483,452,+[~mul(179,979)+}($>(#!*)mul(143,707){mul(732,344)mul(743,974)#mul(580,824)why()what()!when()when()&who())how()mul(10,399)}*)when()&~what(375,175)#mul(540,576)select(156,142)<*(&);%*<mul(137,605)&],+(%/{mul(945,779)}mul(952,504)~what())>from();~mul(377,827)what()@^mul(2,573)what(891,305)+(~mul(192,965)#mul(411,367),+mul(181,566)why()how()select()?]~^)-mul(571,574),who()&[ @select()mul(721,269); ->why()#mul(641,715)why()mul(38,177) *]<$why(65,872)!mul(251,717)<{mul(490,192)mul(334,149)mul(921,662)(+~mul(767,331)](^$>?'do())&(@#mul(873,278)!when()how()$what()mul#^how(511,214)]]mul(726,818)
+(~from()mul(961,791)$)^>]+~mul(320,807)mulfrom()^+<;>,mul(425,375)where()/^$from()what()}?mul(310,951)when()why(38,420){(?from(84,74)[&select()mul(18]when();[when()from()how()select();@]mul(434,652)%>select()]-?mul(984,804)*mul(363,658)*/ &from()?how();^how()mul(909,440)+!*)&<*@{where()mul(237when()'&mul(624,801)? [!mul(473,118)mul(421,299)when()select()mul(358,981)mul(179,656)@#{:from()^$]$)do();how()+$where()%#from()<mul(483,226)mul(351,736)who(251,417);how()'from()mul(400,769)#~>(&!)^mul(446,656)-:$from()why()}@;when()*mul(831,757):who()! %%? do()mul(554,594)@when()who()how()>'>#mul(992,883)from()[(how()what()'mul(684,266)from()where()$?{'mul(656,521how()-);}~mul(413,681)^how(){!*{-<mul(276,497)?'mul(686,181)where()?(%mul(711,352)$when()[+when()mul(887,977)from()mul(553,296)$'from()?<*when(465,958)mul(244,750)( +%mul(995,429)select()$what()[mul(30,375)[}&from()?from()(:from()<mul(957,599)what()(~why()^<,?mul(848,412)from()&^%@;>mul(605,813/&who()/mul(208,330)&select()%[~how()[mul[@;+mul(291,832)[mul(954,916)-<, }(mul(360,461)??+?'select()select()mul(176,724)--:%mul(529,706)<'who(807,145)( '^~:mul(394,403)>mul(461,505)/])#+'-mul(555,534)who()what()^ ]*mul(972,671)+ *who(){mul(7,361),}}when()/[mul(519,583)?*who()+do()@where()where()* how(),#how()mul(907,286)>/@why(929,601)'&,@mul(174,628)<^from()mul(400,722)-/~&mul(705,103)&from() (~}mul(821,931)select()$^+what()'^do()/ mul(741,976)who();@,how()mul(11,473)/who(97,948)<:when():!;'mul(486,596)~%<why()(]how(){-,mul(784,304)select()don't()%where(909,313)< %]@?()mul(405,274)>why() mul(972,412)&;<when()select()[}why()mul(908,622):??{ #why()::who()mul(369,742)!}'[mul(980,605)<mul(954,15)how()*+what(174,33)!mul(816,280)&mul(538,667)how()+*mul(569,802)'how(552,509),when(99,855)#}~when(496,155)mul(541,15)![select()'$,[when()?mul(334,788)mul(546,949)what()++?{:select()where()!don't())^$]what()/mul(293,636)when(535,577)&,where()#'select()>mul(915,634)),<~>*[^%mul(810,448)+-mul(696,812))-{{mul(141,61)where(806,736)>!;mul(969,802))how()why()?[:mul(269,857)when()select()who()>#@:what() where()mul(722,901)+'from()]mul(284,470)select()when()$why(){~why()!what()don't(),why();<(select()mul(17,245)][?/when()&;mul(582,931)select(604,965){+do()]$select()mul(388,976)' :#mul(368,451)+mul(191,133)$'mul(121,338)#:where()who()#$/mul(477,95)(mul(868,121)?where()/^';,*:mul(241,456)(mul(565,994)&mul(435,842)<,~/+{mul(866,963)'<what(){@}/mul(587,894))-{:$(where(48,983):(}mul(227,14) :#<who()mul(65,333)mul(248,73){why()()(!when(249,198)@mul(933,695)/'(mul(785,281)) ;&**%,when()mul(821,603)+'{{why():^:where()mul(706,661)<!(!mul(261,678)!>+;when()where()[mul(649,460) when()(!mul(306,571)who()when()(select()mul(946,26)&)~/}mul(681,34)!from()%#'what()$$mul(71,890)^:select()/where()mul(974,246)mul(198,364))what()mul(256,64)from(650,475),!-+%*+/where(126,215)mul(267,232)where()@$-*^ mul(357,369)select()(&{:&^mul(488,801)select())?don't()]#+{}*#?;mul(584,742)&>]where()?where()'mul(939,130)mul(802,6)(what()+what(567,791)*&-#!(mul(738,680)where()^{^):&%%mul(203,350)]{;mul(14,735){from(527,639)/-+mul(234,797)!mul(416,25) ,>]from()&from()];mul(495,316),where()~!)%*who()mul(666,581)?^[!*what()mul(386,330)who()~$what()- \ No newline at end of file
diff --git a/2024/03/puzzle-1.sh b/2024/03/puzzle-1.sh
new file mode 100755
index 0000000..c0f2f38
--- /dev/null
+++ b/2024/03/puzzle-1.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+grep -Eo 'mul\([0-9]+,[0-9]+\)' input \
+| awk 'BEGIN { FPAT = "[0-9]+" }
+ { x += $1 * $2 }
+ END { print x }
+' \ No newline at end of file
diff --git a/2024/03/puzzle-2.sh b/2024/03/puzzle-2.sh
new file mode 100755
index 0000000..cc8e677
--- /dev/null
+++ b/2024/03/puzzle-2.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+grep -Eo "(mul\\([0-9]+,[0-9]+\\)|do(n't)?\(\))" input \
+| awk 'BEGIN { FPAT = "[0-9]+"; go = 1 }
+ /do\(/ { go = 1 }
+ /don/ { go = 0 }
+ /mul/ && go { x += $1 * $2 }
+ END { print x }
+' \ No newline at end of file