From 5b8676f6e034c1227e06aa9cb727ae85fa1f425d Mon Sep 17 00:00:00 2001 From: Gareth Date: Fri, 10 Jan 2025 19:55:42 +0000 Subject: [PATCH] Day19 --- 2024/gareth/day19/day19.go | 90 +++++++ 2024/gareth/day19/day19_test.go | 35 +++ 2024/gareth/day19/input.txt | 402 ++++++++++++++++++++++++++++++++ 2024/gareth/main.go | 8 +- 4 files changed, 531 insertions(+), 4 deletions(-) create mode 100644 2024/gareth/day19/day19.go create mode 100644 2024/gareth/day19/day19_test.go create mode 100644 2024/gareth/day19/input.txt diff --git a/2024/gareth/day19/day19.go b/2024/gareth/day19/day19.go new file mode 100644 index 0000000..cf151af --- /dev/null +++ b/2024/gareth/day19/day19.go @@ -0,0 +1,90 @@ +package day19 + +import ( + "strings" +) + +func Part1(input string) int { + towelPatterns, designs := parseInput(input) + result := countPossibleDesigns(towelPatterns, designs) + return result +} + +func Part2(input string) int { + towelPatterns, designs := parseInput(input) + result := totalArrangements(towelPatterns, designs) + return result +} + +func parseInput(input string) ([]string, []string) { + parts := strings.SplitN(input, "\n\n", 2) + towels := strings.Split(strings.ReplaceAll(parts[0], " ", ""), ",") + patterns := strings.Split(strings.TrimSpace(parts[1]), "\n") + return towels, patterns +} + +func countPossibleDesigns(towelPatterns []string, designs []string) int { + memo := make(map[string]bool) + count := 0 + + for _, design := range designs { + if canConstruct(design, towelPatterns, memo) { + count++ + } + } + + return count +} + +func canConstruct(design string, patterns []string, memo map[string]bool) bool { + if design == "" { + return true + } + if val, found := memo[design]; found { + return val + } + + for _, pattern := range patterns { + if strings.HasPrefix(design, pattern) { + remaining := design[len(pattern):] + if canConstruct(remaining, patterns, memo) { + memo[design] = true + return true + } + } + } + + memo[design] = false + return false +} + +func totalArrangements(towelPatterns []string, designs []string) int { + memo := make(map[string]int) + total := 0 + + for _, design := range designs { + total += countWays(design, towelPatterns, memo) + } + + return total +} + +func countWays(design string, patterns []string, memo map[string]int) int { + if design == "" { + return 1 + } + if val, found := memo[design]; found { + return val + } + + totalWays := 0 + for _, pattern := range patterns { + if strings.HasPrefix(design, pattern) { + remaining := design[len(pattern):] + totalWays += countWays(remaining, patterns, memo) + } + } + + memo[design] = totalWays + return totalWays +} diff --git a/2024/gareth/day19/day19_test.go b/2024/gareth/day19/day19_test.go new file mode 100644 index 0000000..cb0ed02 --- /dev/null +++ b/2024/gareth/day19/day19_test.go @@ -0,0 +1,35 @@ +package day19 + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestPart1(t *testing.T) { + r := Part1(`r, wr, b, g, bwu, rb, gb, br + +brwrr +bggr +gbbr +rrbgbr +ubwu +bwurrg +brgr +bbrgwb`) + assert.Equal(t, 6, r) +} + +func TestPart2(t *testing.T) { + r := Part2(`r, wr, b, g, bwu, rb, gb, br + +brwrr +bggr +gbbr +rrbgbr +ubwu +bwurrg +brgr +bbrgwb`) + assert.Equal(t, 16, r) +} diff --git a/2024/gareth/day19/input.txt b/2024/gareth/day19/input.txt new file mode 100644 index 0000000..9547196 --- /dev/null +++ b/2024/gareth/day19/input.txt @@ -0,0 +1,402 @@ +rrgbg, rgguubg, rbru, rb, rrrw, wbu, gbgb, uururg, ubru, rugb, bbru, b, rggurg, wgru, bgrwb, rrgubg, ubrrbg, wgurru, rrrrw, rbrwu, wubwb, wrbbr, bgbu, brrww, brg, gbwu, wrubuur, gur, grbr, gruwrrbg, bgwr, wgugbgb, rwbru, wuwr, rrg, ruwg, rgwgr, ubu, wbr, bwg, gbu, bgrwrb, wwrw, bb, gr, rug, grr, ubwb, rbruwbu, guggug, ugu, rwbuu, bbur, wbrww, wubw, br, gruu, gwr, wrrwwu, wug, bgu, bgb, wugb, grb, rbbg, grgbwgb, rwu, bwrbb, uwrbbru, bbu, wrg, rwg, ggbgbg, wbwru, wrgrw, bburr, bgr, rgbg, bwwwugrb, uwu, rwuwrg, gguburu, uwubwu, wb, wgguug, ugrbw, rbgu, rwwu, ggbbgb, gw, wgg, rrw, uurg, uubg, bgurgb, uwgbr, wbrwu, rrbb, rww, bwgb, uugru, ggrbub, wubgw, rwwugr, uuwur, burbrg, bbr, ggb, wgr, gwbgw, rrbu, wuwwrwb, rbbr, uubw, buuu, ubbwggu, brr, urguww, uggwwgw, ugw, ug, rub, grrrwu, wurburgg, wwww, ruu, wrb, rrur, urggr, bwbwwwrg, wwbu, bbg, uwb, ggugu, gbbr, rbrgw, bg, bbuu, uwrgrg, ggbwrgw, wwgwugr, wgbwuwb, gbrwg, bbw, wwrgu, rgrwrbwb, wwwg, gugbgbg, bwrwub, rw, gbb, ggw, rrb, urrbbwb, urbu, grg, rbugggb, bruwg, uubgwgw, bw, uubgu, rru, rwww, gu, wrbrg, guu, wgu, ruuru, wubrrg, brugrg, uuggb, wrurg, rgb, rbu, urg, buw, grwbg, gwuw, grbbg, wuwu, gbgbbw, uugrwrww, wbguub, grrgbug, u, uug, uwr, wrwb, gbg, bru, wwg, bbwur, bbbbbbbw, bugbb, rwurrgr, wwb, ugbbw, bug, grgg, bgwgrrb, uggu, rurguru, wwr, rbw, ubwwgw, wrrw, rrbg, g, rgrbub, gruggw, bur, ubgb, bgg, uwur, ur, bbbwb, gwbu, wuww, uruuuubb, wbru, ugggg, gbuu, rgg, wwwug, gbrwgg, guwgr, urw, wbur, bu, rur, rrubr, ugb, ubrgrb, rbbgg, rbwrg, rggw, rguug, wwu, uur, wrrguggu, brbb, bwwwbr, guw, gugw, wgubwu, rrr, ub, ru, brrbbruw, bwwgrrbb, rubgu, uggwwg, wbb, rwr, r, ruuu, wbggg, wwwu, grbrb, rrrrr, ruwb, wuuw, rbbb, ugg, wbg, rguwr, wbw, wbuwg, ubbgrbb, urugu, rbubw, wrgwuuwu, grw, ubbbu, bwurb, rwuu, rgbbwur, urbuu, uww, wuw, bwurgu, wur, wuwwrbur, wwuu, wbgw, grbbbw, wuub, urb, wuuguuwg, wg, gwrgr, gbug, gbrbw, rwgg, brbbu, bwww, wrbbbu, wwgbggb, burug, gww, ubgrrb, bgw, rgbb, brb, wbuu, brw, ggrbrbwg, uwruw, wrgurrbb, guwrgu, rr, ugggrbr, bgrgg, urgbrbrb, wrw, wwubggu, ugurwg, grrg, bwrb, rrgwuuw, rrru, wurg, bgurwu, rgurbb, uuub, uuwb, rrrg, wrgrrrww, uwg, bgbguu, wrgwb, wwwru, rg, rrurwur, urrbb, bww, rrwwbbb, ubr, wgrbu, gru, ubg, gb, ggr, gbwbwru, uuw, rbb, gugwrg, gwb, bbb, rgrggw, uw, wggbbg, rwgubgb, gwbw, brrr, gugbwu, rwrr, uuuwbb, ugrrr, rgu, wubrwr, wrr, bwb, bwbgurb, rrrub, wub, rwgrug, rurb, gwrgrbr, rbrwbb, wwrgbg, urr, bwu, bwgu, rbuuw, bbub, wbbwubu, ggg, wbwwgwb, buwbg, wwwuru, rbg, gubugg, gbwb, www, rbr, ubur, grbbw, wgw, gbw, wgrw, rguuuu, rwb, gbrw, bbbb, gururbb, rbggwu, bub, bgbr, gurb, rrbgrb, rurwb, ugr, wgwrg, ruw, bgrr, gwu, gbr, uwugwru, wru, wr, ugbruw, grbubb, gwg, gwggurg, gugbr, ugubbgb, uwrw, uru, bwr, rgr, rbgrwg, buuw, ugbur, urgub, wurrrgww, rgguuwru, burr, rgw, rbruw, rwbwbbr, bwguw, uub, wgb, rgur, ubb, urwg, rwgww, wgub, rwwrgu, gg, rgug, gub, bggr, uuu, uu, rbug + +bubrbbwggggbuuwbbrwwbbgbwrruugwbwgbwugbugrgu +wugwgwggbgubuuwugugrugwbrrwrbwwguburbbbggw +wbbrrwwbgwbgrrbwuuwrbbrwuwburgbwgwwuruwgbggubwug +ubrwbrbrggrwgbwbwwuwwguurbubwrbgwwrubbrwuwururwrr +gggrwbgwbwuwrubrguwggruubrggwgbrbguwrbrgwuurbwggrggrwwwrb +wuurugububruuwuggwuuwgbwwbrbwgrrrubwbuuwu +grrrwrwgwuwrburruuwwubgubwwwrrrwbwwbggrbrgr +gugrrubugrgrwgggggrbrbrwgguurrwurgrbuggrrbbwgwwwbuu +wubuwgwuwrrubbwuwwrburrwbrrubgurbggbbubrwrguwururgww +ubbrgurrbgbrbwguggugwrrrurwwwugbgrwwbuwrbggrgwwrgwbrwwuugb +bgwbwwwrrgugwwwugruwrbgrbrwbwbrwurbgruwgrggwruururb +guwurburwrguurwbggrrwwugurguwbubbrggrggrubrbbbrwwbgw +wgwuurwrgubguugbbgrrwbwgrwbwrwgbwrwburggrgbbuuw +grbgrruuwrgwwuburwggbubbbgwwrgrbubggwrwbuurwwbuubuwrgwb +bbwuubwuuwwubrwrwgbbrgwwurwbbwwburwuwwwubwrubguubggruwbbg +rrugrwurbugrrbggburwurbbgbuugwwrgbwrbrwbgbgrbwbuuww +gubwuubuwrrwgbuwbwguubuwwbwwrrwgbwbuwgguguwuwbwu +rrbbubrrrwubrrwwbrrbwrbwugbrbrggwbgrwgugwuugg +uurwrgruuwbwuubbrwubrwuuwwgubwgrwbbwgbwwwrbgugrbwururgurb +rbwbbrguggubguurrrrburuwrrubgbgrwrbugrrrgruburwb +grggbggwrubwwwwgrurwgbwuubguwrrrbgubruguub +rrbgbggwbwbrbrrwwgbbggrruwgggurgbrbrwubwuurrbbbwgrbrgrurr +gububbuuguwgbgrwgwgruburwrgwgbbrbrruururrrubrgggwwrbgb +ruurrgggbwbrggwggrurgrwgwbgburwwuwgubggubru +rbrrwgrgrrwrbwbrbggbwrwwuwrbwuwuuwbgbrwrgrwwgbuugbugg +wwbwrrbrrruuwrrwgggruwbubrrwrwuwwurwurbrbrrrw +wbguwwwwwguuuwuubrwgrgwguugrbrruwwrwgugbbb +rrggwbububgbgbguggwwgurbgbwuwwrwrgwuuwruggu +rbguubrrbrgwwgwbgrwrbrggwuwguuuwbwbwwbuwgr +wgbrrguuurgggrwgwgbrbguugrururubruugrrrrgbrgugbg +bgurwgugurwwbuugwurrgurwwrgwgubgrrgururubguuuwugbg +rwbbuwuwbgwbbwurbubwwugbgrbugrbuurbwwbrrwruwrrrwww +rbrburwwbwugrggwrrrruwwgbrgurbwwrrburbbggugbwbu +burgwubggburuuguuwrwbbgbuguguwwburububwrrgw +gggubgbgbwgrggrbrbrgguruurwbrrwubbrbruwgwbu +wggruwwgbwgguwgbgbggrbggbbbwbwwwrgrwwggwrgguuwwgwubgru +bbrwwruugwwbbbwububuuwruburbwbbgrwbburrgbbrub +gwggggwgguuburrgrgugrwgwrbbggggurgugugrgrgwwbr +gggbbugwgbwgwugrrgbwrrwurrgugburrggrruugurbrugrbbbg +gbwrwggbuggurrgubuguubrbgwbrubgwgrbrwubbgrr +bwuwgurrrgwwgguubggwwuurbbrbbwgwggwuwgbbwrwrburgr +wgrwwubbbwbbrggrgugwggbubwwburubwwuwgbbubbrrrrguubguwbuuu +rguuurgbrbrbuubgbuuggrwrwgrwugwrwgbwbbwbbgg +uugbgwguuggwgwrrggggwrbrgbguuguwrbrgwgbwwuubgugwwug +rbuuwwwrrrurgrgbrbbbrrbbwwwgwgwuwgbwggrbbwbruwwwwbg +wwgwuurrurrbbgwuwwbgrbbrbruugwwgugbrbrgguuwrugwuguurbgwrru +wrgwrrbrgugrrwguuguwburwuguuggguwwgbguwrbrbgubrg +wbrugwbubuggrruggbruwrgrwgugwgbwugugbwguwwuubbrwwubggw +grbgrrbrwggurbbrwugrwbbrurwrwbruuggwrggrrgrgwwbuwbgurb +gwwurrbwrgrgurwuugwbwrgrrrwwwrwguwbrbrrurwbwbuggrwb +wubguubgbbwuwbwgwwrrrgbuggwbwwwugrbbgrwubbrgurbuwwrgbur +uurgwruubgrbgubbwrubbggrububgrwwrubwwbrgbbu +uruuwrrbwbbugbbbrwguwbwuguurbwrurugwuwwguwbgb +wurbgrggbggbwwgwwbbgbbrurrrwggrwwrbrbrwrbg +ggwwrrbbwgubrgrgrgwuububrbrggbwwbubgbbgwubrgwrbururu +grrgubuwgwuwuururwwrbgwrgrurrbbrwbgruggrbggbwubrb +grbbrwbrgwgrgubuwbuwbrwuwugrbwuwwguwrbwbwwbuurgbwgw +uuguwrwggruurrggurrbgurbwgggugbgrrguugggwurgrrgubugbugugg +wrwugwwuwwbrubwwuruuwuwrugugbwwgugrrbuuguwggbrguuugwgwbw +uuggwbgurgurbgruruwwrrgubbuwwruruwrurbwugguwbwbgrgg +urwbggurwbwguurugbrbwbrbgwrgrbbrubrubburuwrburww +wbbrbwwwwrbruubggwrurgugbgbbuwgrrrrwugbwwwr +ubugrwubbgbrrrrgguugurgbubwgruuwrrgrbguuuw +rrruwrgwrggwburgugwbwwwbggubuwbwuuurrggwwbwrgwgwggbguubw +rgrgbrguruguwrggbrgruwrrbgbbbwugbrbgrbrrrggrubwuubwwbguw +rbggwgugrbwbrbwurbrugrwbbbwuuuwrwgbbbrwbuwgbwrgggurbwug +rgbuuwurbrwwuwbrugbggwbgbrrwguguwbubrubwguubbubgrgrwu +gwwwgbrguruuwggwugguuwwrbwgbgwuwuuwrgruguwrbugurrwruw +ubbgwurbrwrwggwubggugrgugwurwwbbbrbwbwgubw +wurggrrwbwgbwuguurgwgurgugwbguuurrubuwwggwgggwg +ugbrrwbgurbugwwwbggggggrugububwbguurruggrgrubuuwgurrwbbu +rbrurrwuuugbwwgubugbuugruwwurwrbrrbrbgwurwuuu +rrurrrwrwrrrbbbwguuwrruwguwuggbgguurrbbgggbwruurugurgb +rurwwgugrrrrwbwurugwrugbgwwbuwrbwuwuguggub +ubbgbrgggbuwggwgrgbgrgwbwggrrwbrggwgubuwgrwrbwrg +wggruuggrwbwrwrugwgbuwggwbgrbuggrgguggubbrbruuu +ggurbuwwbbubrguuubgwugugrgrguwrwbrubrgbwwrg +rgrgbbbbwwruubwuwguwgububwgruwgruggbgggbuggwwgwuwwgu +guwugugbrrbrruggwrbwbbgbburubwuuurbugubwrrug +grurwuuwrbguuwgruubwwbuubwbuurgugrgrwbggggwugbgruuurww +wuugguggwrrgruwgbbrrgbwbruubgrbbrburgugurgwggwgggrrur +grgbbrwuwwrrgggwwwuubuggwrbgrgbwrwwrrwrwguwggw +bwuuguwwrbbgrwubbbrwwwrrururbwgbrrrrwbrbgrbgbbu +urggrwbggwubgggrwwgwgbwbggwggrwrrrbgwrruwbbrbguuwrw +bubruuwrrbbruwbbugwuuwbwwbwbbuwubgrububwwrgwubgrggrruwggg +rurgwubgbwrrwuwuuggrrrwwgwrgburbggwwrubuwwuwgwruwurugw +wgbgururuggrbrugbwrguruugguubrgwrgguwgwruwbgrrr +uubwrbrgggrugurgbrwuugrwrwwwrgbrgwwugbwubwgrr +bggugwwurguwbgbwbwbuwwbrruubbgbbrbwbburugrr +wrwbrbgbbrwugrwbbwgbgggbrwurgrwubuggwurrrugu +grrwbgubrrwruubuugguurrrbrbubbrwgrbbguguub +uburuugrwbrurguwgrgwbrrrgrbbgbrbuwrrbugrgbrbbug +wgbuwuuwuruwuwuuwuwgggrbugburubggbgubwgbuuggbur +wuugrbbwuguwuwwuuruwrwbgurrbbwbwwrwuugbwgbuugbgwwrwwwgw +uruburbbbrwbuwrrbrbguuggbguruwwrruburwgwggr +rurbbururbwuwuwrrrbbbwbuuwwwuwrrggurgrrurgruggwuubwrww +wrbrwwggubwbugrrrgbugubgruggurwwrwuwwwrgbrrugbbbubwgwb +gwruggbrbbrwubgbuwwwrugwbubgugwuuugggurwuuwrururugg +bwgububwrrgruwubrrubwwubrwrbgrurwgrrrwbrwbubggw +urwrbwwrubbuwrbbwgugrbrburrgbbuugbbubbbugb +buggwggugwuwwwugggbrrrbbggwwuguguubugbrugu +wbrwwbwuwbwgrubbuurbuurgwubrwwwuruwuurbrubbugwuw +bbrbggbgwuguburwrgrbgrbrbugrgwbwubgwwuwbwbwrbwrwbgb +wuugrubwgggbugrbwgwgurgwuubuubrbrrbbruwbwrwgguwrrrwbwgbbw +wuugwgbwrrgugguwwgbwgbbwgbbgbgwuugbbuuwgrburuuurwbggwgrugu +wgrrwwugbugbbrrrrburgwbgrgubbguuwbbwwrbbbwuurrwbruruugrg +uwwgbwbuuwgwbbbggbwrrbwugwbruruwbbwrrwurwgbgw +gruwuruuuuuurwurwgbbggrubrubbgbrwubrbuwbruwgb +wuugrbubwrbrgwubrggugwbrgbggbbgwurrwgwrwu +grurbbbgbbubgurrrbrrrwwgggguuubuwgbwgwrguwu +ggwgbrwwwgrwgrgubrbugwuwwrbgwwgwwgurrbgburuwrgg +urwbwbbbuurubwgwrwbgrgruugwuuubgbbwwrurwwrbgugwgwbwggrbgub +wwwguggbrbrubgwggbrbbrgbuuuwubbwrbugbbbgruwbwwurggg +wuuurrguggwugbggggwbwbrrwurrbgwgwgbuwubgwubuuwbugwbwbwwwrguw +uwrgubwbrbbbgrwruwgrggbgbrwgubguuuuugwuwgwuubbgrgbgub +uuggugwuwrwgbrwwgrwgwggrbuuwruuwgbrbwrbugururuww +rwwrwurbrgwubbgwgggugbwwrubuggrgggurbrgwrwrwrrbwrwuu +rwbubuwrrgwggrrgrbwwgrgbgurrbrbrggrbuwwbrggwwrwgubrwgub +gurbbwuubbrrgbrurbwrggwuwwbrbuurwbubwwwrubggbwwgbwbrg +uwbuurrwbrgrgrurggwbwgrrwgwrbuwwwuburugugbugwuwwbrrubwu +rbbrwgwrrbbgwbgrwbrrrwwuuugrwbggrugrbburgbugburggbw +uggbgrgruubgggwbrugrgrbbbbwbwbgrbrrgrwbwrgguuwruwrwr +uwbbbuurggrbrurwgubrrrbuwgrgrrrrbwubrwrbbg +wuuurrbwrgwrguuwgrrgbuwggrbbwbuwbgugrwubwugwbrbg +gbrggbbwgurgrrbrugwrbuwgbrwbbbubgwggrurgurrw +rruwuwuuuuugwwbwbrrbbggrruwbgwuuuwgugwurwrg +gugrrbwrbrubuubgggbwbwwugugwrgwguurugbwbwwggrggbgrgrrbrw +ubbubwbuwrugrguggwwrwbbwbrbwrgwwbguwuwgwwwbwwbggbrwb +bbruguwgwbggbuubbgwugubrwbuwuwbgrgwwguwwwggruwgbb +grbugrrgwgbrgbuwrwbbgwbrrbrubrgwurbwwrwruugg +ruuruwbubugrgrbggrgubggbgrwrgwgrgbbubuwwwurbgguwr +rrwbbugbrurwgwbwwbgurgurwwwguugguwrwguwuggwgwb +wwuwgwgburubbbwggrrbbbbwbgbubguwrgbrrwubguurwwgrbgurg +urwbbbruggrwwgbuguuwubgubrbgwubwgwwrwwgubggwwrgbww +gbuurrwrgggwurrwuggbruwurrugrwrrbuwrggbwgugrwrwurwruwu +buuwrwuuuwgwwggbrbgbguuuruuuubbguwgbbbwgwgbuuwrrgbr +ggrrburrbbwrrwbwwubuugrgbugubwubrugbgwugrgu +uuubbwrbrwgrwugugbbgbgwwrrbuguuuburgrruugbwbbrwrbrbbwbrb +uuuuwrubrruguuwbwwugrrruwwburgbbggrgrgwbggubuuwu +wwgrubrrubrwrbgwrwgbguwgbbrgrrubbwbubbburbwgrrrub +bgwrgbrbbbuguugguguuubuugwbrwwurwuubrguwrruuuw +wuugbbbwuuguuwgrrwrwgwwwwwrbwgwrbwguwbrbgugubr +rgruurbggrbubwwbuwwuwuwwrbbgbgbguwrbbrwubgwrbr +uuurrubugrwwuuguwrwwwggubbbrbbbuwbbrggwuggru +wuuuurwgrwggwrruuuwubwubggrbrbwgbrwbgbwwurgbrwu +wuurggrwwbgwuwwrburuwrwrruruubgggbrugwwrwgbuwrbwgbur +ggrubgbbwruggbuuuwgrbwruwgurbwbubwuurubugbwg +rwwggbubrwurgwrbrwuwugbrrwwubuwrwbgguuuuwuwgwurgbwguw +wwbubuubgwwrrgbruubgggrrbuuwrugwbubrwgwbggbgwu +bwwgrrbbubbwrwwwguwbuuwgbbwgbbubrguwbbbgrugubrwg +wgubbgguwgbrbrgrggubrrwwgrrrwugruggrurrbubuugwbgwuuwwwwgr +wwbgwuwggugubgbggwuwgwggrrurrbbrrrrbbbgurwrrbuggg +rubguwgwuwwbuguguggurgwrwgbrbwubgugrurbwwwwbbuwu +rrwrgrwggubrwgwrwwuugrgbbrgrubgwrwuugrgbbgugbgrburrrrrugwu +bbgwugrgwbggrwwwrgbwburrwrwurbwgugwgwgrbuugwwuuwgburggggg +uuwbwguuwrbbuggbwggbgrbuwbgugwuurrurrgbrbuurwbwurrr +wurbwrgrgrrbgbwbwwuuggwuwuwbbwwuwgwgrwggubbgrwggbrrggur +wugrrubbggwurburggurrgggwuwwuguugrggurrgburrbrbrwgwbuwbg +wrugrbrwuwrugrbwurgwruggwrgwuwrgwuuwbwwggwubbgrwggwguwww +grbwguwbbbrwuwggbgurgbgbbwbgwwbwrrwbubrgubbgubgwwurggwbrbg +uubrubgurbgrgruwbwwugbuwgugburuubwuubbbrbbgbuggbbu +bbgbrwbwrwgbwrwwbbbrrugrwgbwbbruugurgggbbrgrguwurubgwbw +wwugrubrwrwburubwwuubbuubgburbbrrrruugbbwwgwbrrbubgbgbuwu +bwugrruubwwrbwbrrrbrrrbbgwrruwwbrgubugrgbwgbbrbgrwgwwwggr +wgugrrbbubgbgrrbbrwguwgbbgbwggwuuurrwgwbwrgwwuuw +wururbruwwwwurwgurwbwbuburrgruuwrbuguggwgubrgrruwwgwbbg +ugrwrrrwguwgrgwruwurbrrgruwubbubrwbwuwwrbbwbbggggr +rwuuguburgwruwrgbbuwggugbwrwuubrugrrruuwgggubbuwbrugrwuu +bgwubwuurwurbgugbuugbgrrugwrbwgrwrrwbgwwwgrguwwububuwbg +urbgbbgrrbuwrrguwrwuwrbbwgubwurugguwugururwruuubbgurrbg +grruugrurgwwbbrgugbburrwrrgwwrggwwrbwwbbwururwrbgguu +uubrwgwuubgbbgwgwuggbuggwguggwgrguwbugwwuubwwb +bbgubwurgurgguwrwrbbubbggwubwgbbwggwuuwugbg +guwbbwguurgwurbrgugwbwwbgugbgwwugubbggwugwrwgrb +wrruwbubwgwgbrwrbbbwuuuuurbwrbgwubrrugubwwrugb +gbuwwbubrrbggrrbugrgruwbrruurrburrgbggwbgwgbbggwggggbgrg +rwrbbbwbggrubuwgrugggbrbgbuwgrbrrbrrbwgwgrbuubgw +burbgruuwbbwuburbgrbuuuuurbuwbububgwwgwbrguubrguugwbbwbw +ubrrrgubrgrgbuuwgrrrwwbruuugbrrwbgbrwgrgww +uuuubwwwuwwbguwwbwgbwrwuwrwgrggrbgrbugbwgbrggwgruwrw +grwgruggbrrwuwrwbggwwgbrrwrwruuggbrurrbubur +uggbrrggwbwbrbwgurbbbrbbgwbrgbgwrbwubrurgw +ururbbrwrrwwbgubrbbuurguuwwgruwgruuurwbbwruurggru +grbwbrubbrgrwgbwubgbuwwuuwwrubruugwwwugguwrgurgrgu +wbwwugggwwurwrbugbbbrrgbgbuwggrggbbgrburbguurb +brwbbgwbgbrbbgwbrruwugwbguurubgwwgurubgrwuwrbguwuwrrgbwubu +rwugwrbgguwuggwgwgrbwbwwgwbwrrgrbbbwubgwggwrwurgwrwb +urrbwwgrruwwwrbrbwrgbrggwbggwrbbwwrggrgbbg +wurwwgwuurbwwgrrbbubbbbgugwwurrggrurbwrbuurbbbb +wggwrgurburuurwgrrurgrbubgrrgbbbwwrgwrurwrwwrgubuugwur +wrgubgbbwbbwruwrrgwgbrruubwgrurgwgrbugbgbggguwbrwuu +bgrwuwbggwwgrwbbugwuuwwwbrgugbbrubgugwbgugrbuwgrrbbubbwrrr +bwuwgwgugggrbwgruugbwruruwwbguggrbgggrggggwwuuuwugbuwuwgu +ruuugrurrrbrrbwuwbubrugwrrbgugbrwuurruwuwrbrbrwubwbwgur +rwugrbuwgwrwrbubggwugbrrgwwubbguuwbgbwuggrrrrggwrbrr +wbbrrruwuwubrgbrgbggrbgbburbugbwrrrubbbbggrurrrwb +ggruwrgubbururbrggurburuwrrwubwbuwwruruwbwuubwbrwwwrwr +wwuurwuwrwbwguuwwrbwgbuurgbbrgrbgwgwggwrgwgwwuuwgrwbuwrgbu +wuburbrwbgwrruurbrrrgwgbgrwgbwwwbbgrugubbrwuwububbrgbw +gwbwwwgrubwrguugbrbrbggguguuuugggwrbgwguwbrwwuuwggw +ubrbruwbururrrgwurrrbrrubbgbwrrggubbuburgwruwggurbrwb +rbrbrwwgwwurburubwgugwwbwuubuwbrwrrgugguwrbrrgbrrbrbw +grgubrrwbbwwwbrbbwbwwbgbbwrwrggbrrrbwwbwgbrgugguwuwubub +rurbrbrggruurgwguugugrrwrbuuwbwrubbbuburrwgruubu +ubrwguwgruuwwbbuwbrubugrgrurwrbwbwgbwrbubrgg +uuwgubuugwrbggbrrwurbbuwrurbubbbruwgrrrbrbwwwg +ububuuwuwwrugrrwrrbgurbrrrggwuwrubbgwwwurbb +bwugrrrgwurwgrbrwurbbbwbrurrwwgwwugbgbwgwuu +bbwgugurwurwbugugrgwburggurwrbbbbgwwbuubububurwuurggwubg +wuugbgbbwuubbbrrgbgubbgrrrbrgugrbwguuwgburrwrguuwgrbg +urbguwwwuugbgwwubwurubrrwbruwwugrgwwburrugugwbwbbu +uguugwgrgwburrrugbwuwgwrbwurgbbbbbwurbbgubwr +wuwrrrwwwwbwburbuburrrbgwuuubbwggrbwuwwgbrbrbwrw +wwbwbuwggbrgbrbwrwgguggwbugggrbwgwrgrgbgrrgbuurwubbr +rugbgwgugrgrugwwgwruurwbrwuwggbbrbrrggwwgwbubbug +wwrgubrgbwbbbrbuubuurbwbgbuugbwgguwrwbugbwrbwuwwrgb +bbrrwurbggbguwgwggrwbbgguubuuurbruwwrwuburbrrg +wuurugrubwrrbbrbbwbubbgburrrbugwuwwrgrrrwwbwg +uwgbugbuugrrwrwwuuuwwwrrgbubwugruubrwburgbbbbruwwgubrugb +wrwwuuwguruwrgrwgurwgrurwggubugrrugwggrbgbuu +guguugwrruwurugwgrbbwrbwwurwgggubugrugruuwrubbbgggwuubgrrr +gwuggrwbrgwuuurrbgbwbwrbrggguuwbubbrbrurwwuwugrubrwrwubwgw +ggrrwwrrggwuguuwgbgbgrbbbbgbwrrgguwgwggurubbugbgw +rbggurrgrrgrrbrbrgrbuggwubwwburrrrgbbwuuuuuwrbwbbgbrbwbwwb +bwugwbwububgbgwrbuuuwrruwgubbgruggburwburbrrwg +urrrbrwbguugwgbwrubguwwrruuguuwrbgwgwrbugwbrggbgrbuguubb +ururrgbbruuuwuubugubugbgwgwbruwgwwgwbrbgbubgwwgurgwb +wbwbrbgwurbgwbuwwbbbrrbbbuwrrgbwgurwugwburrrruwrgb +bbrrbgrrwbwuuuwwruwurwwuwgrwbgwugbgwrrwwwuubggrgrgrgrbwbrb +guguguwguwbggubbgurbugrwruguururuuuuggbrgrwguwubbwww +gwgurbrwguubuuuggwgwrurruwbuwrgwuuwugrrgrgrwrwurubuuuwgwg +rbuguuubrgwwugurgugbuugrrgwbbgubuuurguurruwrurbrrgwgrurrw +bgbbgrbgggwggbwwuggbrrbbgguurgrwuwurwrgwgugwbwwgrgubbb +rrrurgbggwgrrugurbrubbgwwrwuugwuurgrwurwrwbuugwuurgggwbrww +bburbwwrrwuuwuwuwubbwurwbwwrbwrubwugruruguwbu +rwbrwugruuruuwgugbbrrgwurrrburwrbugrubbbrg +rurugubuggrugbwrwwuwrggbrwruuggurrrgwgbgbwugrgbrurr +rrbuuruwrgubbubbgbruubgrrgwrrwwwgubwbuuburwurgurruwwrbbrw +gbggubwgrwwgwbgugbwrwgbwgubbbugggwwwrrbbggbwbwr +uruuugbubwuwrubwgbbrggrwwbguurgwgugbuwrgwbbwru +wuurrrwburwbbugubwwrgruwrrbgrwrrwwbwbbrruggbwuug +bggrwbgbwbbbbwwrurgwbrwuuuubwwbbububrbrgwgrwbrrrbrugrrrgrw +bguguurrgbugrrrwugrgggrbguwgruuwbuwubrurrrgb +ggwgrgbwrrrwuugbwbgbwgbbbburbrwbrwbrrrwggurbwrrrbbbgrbwuu +uugggwruuuururgrggbrwuggruwbgbuguuwwubrbbgwbrgubrgubrgbbww +uubwuuwrgbbrbwrbrbbugbbrbgwwrwwgwggbubwwgwuguwububgbu +gugbwwrwuuwrwrgrubwrwgbrgrguburwbrwwrbbgwuuggwggu +wwwwubbgrbubbwuwgbrgbgwubwubwgrrurwgrrggbgubburwgurgwb +grrrrwugwurbgrgwubbgrwrwbbuwguwgbbggbwuuguuwggrubwwuwggg +rrugggwburrwgbrbwbgwgwuwbubugwwrrwugwrrrwwbub +rbrbgwuwbggggwrbgwgwbgburwgurguguurbguguguwguuwggwgwr +wbbgrwbrrrrrbrurgrbugbuwrubwuwrgrwgurbgruuggurrrw +wrgrgbggrwgugbggrrgwuurrwbgrwgbubrbwrrubrggbrbgrrwuu +wuurbbrgubwrgurrugbwubbrbubruwbugrrbrwuwbbbbbbbwuwuw +wwrggrbbrgbuwgrrgwbugrubguuggugurgwbuuwgbguurgrr +wbwrgugurrwuuwbrrguwbgwurwwbbbgbgrgrwgbbuuwurburrbub +ggrbgwuubgrbgwbbbubugwruubuwwwrbgbwrggggggbubgrbwrw +bugrwrrgbwgugrgbrwburgrgbwbbrrwbgguwrbgwug +wwbrbbrruuwbgwrurgwrrguugwgrbbgbgguugubuwbgwubuwgbruuburw +gbugbuggrggbuwruuwbwbbrggrbubwbbwrrrbwgrguburrbwguwugu +ubgwggubbgguugguruubbugwuuwrbwgugbuuruwgwgwubugr +rguwbrgwbubwggbuubrrwgggggruwuuggwbbrwbgwg +ggbugubrbbrbwbruwwrguwbgruruuuwruugwbuwgwrgwurgwugwwbggub +gwuwburguwwgbrgbguguwwrbwgwurbbgruuuubwuubbwubgbu +bguwwrugrgbbuguwbwrbubbrwbbubuggwbgbbwwwrugbrgwrbwggu +wwwrbuuwuwgwrbwruwuggubrgbgwbuwwrrgguugbruuubrwg +wuuuugrgugugguwwrgurwurbbbrwbwwrgwuuwubgwru +uruuwrwrugrwwwwwrgbbwgbgbrwrwgrwrbbbrggurrrw +bggbbggbrbbrrgrgwurggrwbggrgggwbrbwwuguugb +bbrugbgrurwugwbgbbgrwggbrgbuwubgbrrwbbubwbrb +uruwbbugbwrrrgggbwbrrwgrrbwrgwgbgurrbbgwrrgwbuwgw +wrrrrugwbrgrgwbguwrbbubrwubwbwwwwwwbburbuwgwwbubrugbwguug +wuugrwrwwrwbbgwgugugurrwbbwwwwugwwbuuurbwgwrbbggugwwwwbgur +uuubbrbrrubwgbwbugguwrwbgwrubwbgbbubgrwugbgrwurubgrgbwrr +rbuguwurbrgwbubwwuwggrwuwgrbgburgubrggrgrbwwwbwbu +grrbgwgrbwbrwwbbwgbgbbgrbguurbrwwwgugrgubububbwwbuwugrbbr +wggguwwbwrrburbuwbwgbwbugbwgrurrrbrgubwbwug +uuwugrrwwbguuugrbrrrbuwuubrguwwgrggwrgubbb +ugrbwwgruwbrwbbbrwrruwbwgggugbrrbwwurbggwururgrgurwuw +rwgurbrbgwgugwuuuuwbggwwbbgrwrgrbgwuruuubgu +bgbrwuuuwrrgbbuuwuwwrgrgbrbrubbbbbrwubbwrbgbuuurbrubuwuurb +bwgrbrugwggubgrrgbbrugwbbubwwbwwgwrbgwgrurrrbugwguruwu +ugbggrbwrrwwbbrwuurbgwwbuggwggbugbgrrgwbrurrguwwubgwrgw +uruuwuwwugubwgrugurbggwgrwuuugrgwrrwuwgrrbwrg +wbgwuwbgbwuburguwbugwgggrrurgbgugggrrbwugugrrbbbwuguuuurbg +wgurrbuwuruguurgwgwbgugbruruwwggubwrwuuubgwrwwww +wguwuwugurbrwwuwrgurrbbrwggrrrbruuwbgrwbgwgubuwuwg +gbgugrbgruuwgbgwbgwwbwruwgbrgbggrrgrwrbubrgrbgbr +wuurbbwggrbbgwrgurbwwbuwggrurgrwrbwbrrbwbugubw +wburgrurggrugrbuuggrrbgwrgwbgububgrwbrbugggwrwrgr +ubwwgrubrrrbbwwrgrrubggubrrbgggwwrrrguggbugubrubburubw +uwwururrbubugbwugwrbuwruwwwrwurbrbwrrgguubgguubww +urbrrruwwrrrwgbwwuwubuuwuuwgubbguubwubgurwwgg +gbrbgbbrrrbgbgbgwbbgwgggbwbrwbbuugrgrbuuuwubrgbggrrgwuubw +gububrggbugrrrwrbguggwwwbwuurwggrrbgbgwwru +bbgbbgbuwrwrrubrrurgguwurbwurrbugbwbrrugrwgwbrwrggbbrwww +wuugrbgguuuuubruurgbrbrbubuuwwguwguwurrbbgruubburwwbbrb +grgrgrruwbuuubrurwwwugrrggbbrugwrwgruugburu +rrbbbbrguwrwgrwgwgrbwurgwrrwwbbgbgburbgwgggwb +rwgwbrwwgwbguguwurgwurbwwbrbgrbgbruuwbuwwrgug +wuugwwuubrwrubrbgbrwururuuburwggrurrgbwubwuggubbwbruuuwrwg +ubbgwbugrwwbuwrggrgwgrrwrwwgggurrrgbrwgrwubrwrur +bwububgwwbuugrwrggggrruguwrugwrgbguwrrbgbbbwburruwrgwrurg +rruwguuwwgrgburwrbrbubwgbugwggrurgrwbubrguwuwbbwgrbuww +rrbbrwwbrgwwuwrbwggbubbuwwwwwrbrwbrggrubwg +wrwbwwrbuubwwuubwrwrrbruuwwbwubbbgbgwguwburwuubbg +ururgrwggrgugugbwrbggwgugbrbugrwwgubugbrgburrurbrggg +gwwuwuurwrbbwuubrururruggrgrgwurrrgbrbrbguwrr +rgwwwrwbwrggruuburuugbruuugbgbgwgugwbugubuwwgrrrru +wwrgrbwugurbgrgwgruwrbwuubbwgwggrrggubbwugbwwrrrgbbwuu +gbwurggwgrrguurgwwgrggggbbbwgburwbgrgwwwwbr +ggbbgrbbwbbgwburgggwgwububrbwbguuurggbubuuuwbwggugu +bwbrwuwuuggbubggrwgguwugbgbubuurubwrugubwrurrugguuwrbr +ubrrgrbbrrugubuuubbwuwrwbggrbrbwgrrubbuubwg +uurbbubwuugwguwrbrgwrbbrrruwwgbwwubrgrwubguugrgwuwrg +wugbrwbrgbwugubwrrgurrrgurgwguubwgrwrbggurrbgg +wubwgrugruuuwuugwwrugwgbbgwwruuwuggurwwbrruw +bwrgruurugbwwwwbwrbrrrbrggwbburrwwugrruurbbwwggurbbbr +burrrgurrwrggbuwruwgrwwbwbgugwwwggwwurrbuwbuubbrrrwr +wrrrgrwgwwwrwgrbgrrwuuuwgwrguwwurrrubguwurgbrb +uwgwurwrwgwgbuwbgrrbubwwbrbuurubbrbbrrurubwb +wbrggubgbwbbwgrrurwwburbwruuruwugrbguwrwbuwuwbwwbuwbu +rgurgrwrurbwbwbrruuwgbwrwwbgwuubgwrugwbrwwbwbguwwbgrgrugw +rbggubugwbbggguugrwwbrwgwbgburggrgrbruubwbrbrbrbugguwwrgb +wruuggrbwgwwrgrwggugburwwgwgbrurwwgbgwuubrwbrgugubrwgbwgu +bggwurruuwwrggwbgwuburrwbrwrbwwrrggwuggrburgwguu +uwrrguugbwburwubwbuwbwrwgbgbwurguubbwbubbwbgrrrruub +rugguugbgrgbwrruurrbwbrbrgururrrwguurgrbrwgwu +bggbgrwgruwbugwrugwbwbubbwgubgubwbwwwwbgwrwrgwrwruwgwbuw +gurururrwguwuwbggbggbbrbbwbwgububrrubbrggrwgu +uugwubgugburrgrwurrrgwwgwwwrwubgbgurwrwuwuggbbguwrgugbgu +urbwgbbugrbrruwwwrwgbbbwggrwbbuugurwgwguug +rbrwwwrbrgwrbwbbugwugbguuggbbgbrgbuwwrgbugr +rbrubgwbwbubbgbubwwwrbgrwggbbguugwuguwwgwbbbbu +bwbgurbrbgugwrrbgbuggbrrbwwbrrgbwggrrwubbwbrgwg +grwuggugggurrbwbuuwrrwbgggwbruwwrbwugrrwrgguwwwrbgbu +rguwbbbrgbgrgbbuwurwuwbbgwburuwbugubrwgubrrbbruwbrr +uruwrbruruwbubbrgwwrruwrurbgwrurwwgwrruggrbguwurggggg +bbgbwwbwgbrggrgbgggrgrrwgwgggwgggwuuugrbwrrwbwb +grbrbbgubgbgwuwwgwrbgguuwugbrurwbbugrrbwrru +wgwwgbwgrurgwgruwugrbbbbrgbgbbugwgubwubgwwwur +wgurubbgbbguuwggwgrwbrgwbruwggrbrrwwuugbgwgwbbgggwg +uubbwggugwrwurbwwwuubgrwbbbbwbguwbgbbuwgrrburrwguguuwuuu +urwrgbrgubwwubwurwwrrbwwwgbwwrbuguuguuugrubwbbwwwubr +wwgwuurbburbwbwwwugrbwggugrrwgwugbugubububuurur +rugbwwgwwuwbbwbrguguggugrruubbwrwbrurwwwgwubbrrwwb +wuuuwrgbwruwwurrrgwwrgugwwbubgbbgbggrbrgg +wugbuwgbugwrrrgbbbgrbuuwwuugrbgbgwrgubugggrgrbugbggggwrr +wurwwwgwgbuwggbggwrwbwuwuwuguwwbgggwgrbgwbbbbg +gugrrrrrbrgwubwruwrgbruwwwbbguruggbubrwugwbwwbugbuwww +bbwgrbrggbuburgrwrbwbbbgbwurrruguggurbwbgrwwrr +uguwbbgwugbguggrruggbbrrubuugurgugwuubwbwwr +rwgbuwwbwuwwwbguwgugwgrbbuggubgwrurgrbwgbuugbrwr +wurbubbrgburwguwrrwuggwbrrrugbwbuuruubrrgrguuwwuururwrbww +rbubgwuubrrruubrbwbwuugugurrwugurwgwbwrurb +bbgrwuwwubruuwbwwgrwrbrgruruuwubuguwugbgrbgrwugrwrgbugburu +wuuuwwgrgurbgbwbwbgrrugbrwggrbrrubgwurwurgrbbrbu +rwbbuugrbbwubwubwrurggwwuurbbwggbwuurubrburuguwrrrrw +bgbgugwwubguuuwbuugrbbgwwwgbuwurbrgrgbuwug +wuugwbwgwwubwuuuwuwgwurburggbwwbrwwrwguuruwubwbguuwgw +grrbgrbbugwguwbrburrbrrwgbbrgrruwwurubbuwbgubbwgruwbgbb +bwuuwwururgugbrruugrrrugrgugugbggbbgbbguurrg +rgurgugrwurgbwwbuuwubruwgrwbububuuwruwggwrbbbbbbbwwbb +wuugrbgwwwgburbwrwgugrrgbbbgrgbrwwrgurrbbwbwuugugrgbubbrrrrg +ubrbgrwbuugrgwuurgrwbbbbrurubgurrgwubruubggwwgg +rwwubuuwrrrrwwwbruruuwbuwurwbubrbgrruuuwrwrwg +rggbgubbrgbgrrbgwwwrgwubrubwruugbwrwbbgguugubrubuwg +gbwbwwgubuubgurruwwwuwrrbuurgggurbbbbubbrbgw +gubggbgrbgwbbuwguggwuwgbwrrwwgbrwrrrgwwbgug +wuuruwgubbwuugbbburrugbggwwuruuuubbgruwbrr +gwgwruugwuurubburrrwrbgrurrwrwbbbbbwuuwbugrw +bgbwuwururguwuwbuubwbubugbwbuurwurbwbwgrgbwwwgwbuwubru +bruuwbugbbgrgubrggbggbgwuwbwwwrbwuwwwuuwgwgugrgwbbuwubbguu +wurrbbwuguuugrgurwwbwbgwbbbwbbuuwbbgurwrrbubwbbbbwubb +bwuubrguububbgrubbrgbgwwbgbbbgwbrrgwggwgggurgbwwwwuur +wgwuwbgrrurbwgwugwruwbubwgrrrwbbgrbuwubgbgw +rrbbrrbbwbbubbwrwgwrbrwwbbbbgwbguwgburwgbggr +wuugbbuguruwugwrgwbbuggbwbwwbbuwwuuugwbguwugbwggrbrr +gwgbburbguwuurrrgwbuwrurrbuwugwrgbgwrgwwwwurubbgbwr +wubugurgrbrbbbwrrwurwuuugwuwrbbbwwbrgbbrurrg +wrwugbwwbbbrguwuwugbwwuwgwubbbgrrbrwguuububbggbwwbwwrwbg +bugwuwrwuwwggwwuwrwrbruggrurgwwurrguwugwrwg +rbrgrwbwrurwbubrugwwgguwrrgwgwuwwbrrgrbrgwruwgbgbrbbru +rwwwrwruruuubwgwbgubrbgbgrwwuugruurugbrwbwuuwgbwubggugg +uuwugbbwrwbgrgwubgwwgrubbwrbbwwwbbwbbrbwrrugrgggw +wggubrrbgrggrwgguwggubwwrbrbgbgrrgugbggbgg +uwbuwrrgwguwurbwbbgbrbbrgguuggrrugrwrwbgrrurru +grrrgurgwububbuguwrguuuwrwwurbbwrwwguwwwrggbrbr +wubbgwbwbrbrgbggurgbrwgrubrurbrrrwrurgbbrwurgrrgugbwurrbg +wruwwrwgwrbwubrbwubbbrbuurwwwugwugubuubwgbbbubgrrgbrgbw +rwrrbgwurrgrbgrrrguugwwbgwwugbbgwwwuuuwgugwuwuwuubuw +rgwwugwwurgubwgrbwbwwgbbbubbrggbgrugguuubuuuugbgbgug +gruuruwbwbuururbwrwrgrwuububgwgruggwbwrgwbub +gbbwrurugbbwrurwwbgrruwgbrbrbrrgrwrbbgbgwbgwgwuwrwgrgu +wugwwgrwbgugurwurbggbrwruwuuwurwrbrwgruuubuurur +wgbuwbrbwrgrbwuwggugggguuwgbrbwgrgwrurrurbrgugrgwrb +ggwubgbwwwgrwwbbggwwrrggwguubuggubggguuwbwuwgwuuugrgbuubbb +rguuugwbrbrbwbgrggbubwrwwrrrubwwuugugwgrbuu +ggugbrggwbuwrwgrgwugurrbgruurruwwgrbwwubbuubr +ubgwwggbwbuwbbbbbbggbwrgrbgrgugurwggrubburrubrwrrggrgg \ No newline at end of file diff --git a/2024/gareth/main.go b/2024/gareth/main.go index f8721f8..ef55304 100644 --- a/2024/gareth/main.go +++ b/2024/gareth/main.go @@ -1,7 +1,7 @@ package main import ( - "aoc2024/day18" + "aoc2024/day19" "fmt" "os" "time" @@ -9,9 +9,9 @@ import ( func main() { start := time.Now() - data, _ := os.ReadFile("day18/input.txt") - fmt.Printf("part 1: %d\n", day18.Part1(string(data))) - fmt.Printf("part 2: %d\n", day18.Part2(string(data))) + data, _ := os.ReadFile("day19/input.txt") + fmt.Printf("part 1: %d\n", day19.Part1(string(data))) + fmt.Printf("part 2: %d\n", day19.Part2(string(data))) elapsed := time.Since(start) fmt.Printf("Execution time: %s\n", elapsed) }