From c6b4a1477ea51f0aea4e75f6ca3bbbe5f6ed4d6f Mon Sep 17 00:00:00 2001 From: Peter Folta Date: Fri, 20 Dec 2024 11:37:08 +0000 Subject: [PATCH] [2024/19] Linen Layout (Part 1) --- README.md | 3 +- .../adventofcode/year2024/Day19LinenLayout.kt | 28 ++ src/main/resources/inputs/year2024/day19.txt | 402 ++++++++++++++++++ .../year2024/Day19LinenLayoutSpec.kt | 5 + src/test/resources/inputs/year2024/day19.txt | 10 + 5 files changed, 447 insertions(+), 1 deletion(-) create mode 100644 src/main/kotlin/adventofcode/year2024/Day19LinenLayout.kt create mode 100644 src/main/resources/inputs/year2024/day19.txt create mode 100644 src/test/kotlin/adventofcode/year2024/Day19LinenLayoutSpec.kt create mode 100644 src/test/resources/inputs/year2024/day19.txt diff --git a/README.md b/README.md index ab06d5f..89a170d 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ | 2021 | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | | ★ | ★ | | | | | | | | | | | | 26 | | 2022 | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | | | | | | | | ☆ | | | | ☆ | 28 | | 2023 | ★ | ★ | ★ | ★ | ☆ | ★ | ☆ | | | | | | | | | | | | | | | | | | | 12 | -| 2024 | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | | ☆ | ☆ | | | | | | | | | 30 | +| 2024 | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | ★ | | ☆ | ☆ | | ☆ | | | | | | | 31 | ## 🛷 How to run @@ -180,6 +180,7 @@ e.g. `HandyHaversacks`)* | | 14 | [Restroom Redoubt](https://adventofcode.com/2024/day/14) | [[Code](src/main/kotlin/adventofcode/year2024/Day14RestroomRedoubt.kt)] [[Test](src/test/kotlin/adventofcode/year2024/Day14RestroomRedoubtSpec.kt)] | `224357412` | `7083` | | | 16 | [Reindeer Maze](https://adventofcode.com/2024/day/16) | [[Code](src/main/kotlin/adventofcode/year2024/Day16ReindeerMaze.kt)] [[Test](src/test/kotlin/adventofcode/year2024/Day16ReindeerMazeSpec.kt)] | `98484` | | | | 17 | [Chronospatial Computer](https://adventofcode.com/2024/day/17) | [[Code](src/main/kotlin/adventofcode/year2024/Day17ChronospatialComputer.kt)] [[Test](src/test/kotlin/adventofcode/year2024/Day17ChronospatialComputerSpec.kt)] | `5,1,3,4,3,7,2,1,7` | | +| | 19 | [Linen Layout](https://adventofcode.com/2024/day/19) | [[Code](src/main/kotlin/adventofcode/year2024/Day19LinenLayout.kt)] [[Test](src/test/kotlin/adventofcode/year2024/Day19LinenLayoutSpec.kt)] | `267` | | ## 🕯️ Useful commands diff --git a/src/main/kotlin/adventofcode/year2024/Day19LinenLayout.kt b/src/main/kotlin/adventofcode/year2024/Day19LinenLayout.kt new file mode 100644 index 0000000..642356f --- /dev/null +++ b/src/main/kotlin/adventofcode/year2024/Day19LinenLayout.kt @@ -0,0 +1,28 @@ +package adventofcode.year2024 + +import adventofcode.Puzzle +import adventofcode.PuzzleInput + +class Day19LinenLayout(customInput: PuzzleInput? = null) : Puzzle(customInput) { + private val patterns by lazy { input.lines().first().split(", ") } + + private val designs by lazy { input.lines().drop(2) } + + override fun partOne() = designs.count { design -> design.patternCombinations(patterns) > 0 } + + companion object { + private fun String.patternCombinations( + patterns: List, + cache: MutableMap = mutableMapOf(), + ): Long = + when { + isEmpty() -> 1 + else -> + cache.getOrPut(this) { + patterns.filter { pattern -> startsWith(pattern) }.sumOf { pattern -> + removePrefix(pattern).patternCombinations(patterns, cache) + } + } + } + } +} diff --git a/src/main/resources/inputs/year2024/day19.txt b/src/main/resources/inputs/year2024/day19.txt new file mode 100644 index 0000000..0051feb --- /dev/null +++ b/src/main/resources/inputs/year2024/day19.txt @@ -0,0 +1,402 @@ +brgugg, bgurr, wubb, bbg, uuuubwu, wuu, urwg, bbrgu, bgwu, brbg, wgw, wwbbb, rur, urbgw, rwgrr, wwbbr, uww, wwg, wub, uwugw, bu, uwwug, uuwrb, burwbb, wrburb, rrwugw, uwbb, ggugr, bwg, wwubu, bug, urrrgwg, grgwwu, bbuw, urg, bgrbru, urr, rwggwb, wbu, gbru, ggurrbr, ugug, rbbgbr, gwruu, bgr, rub, wgb, ugu, uwwwbg, ubbugbwg, gubbbwg, bgbrwu, uugr, guwrub, rrrubw, wwr, gu, wru, bgrg, r, uwwb, ubu, www, rgur, bur, bgbgwwu, gubg, rrrr, u, guwrg, gbwu, bugrbb, wuru, ub, bgggg, bbwu, rbrw, uuw, rbubb, bbwg, urugrg, urwurrw, gru, grg, gw, gwwrwbg, urrbrr, uguw, rrgw, uubbug, buu, rggubg, gwwb, ru, wbwgw, rbrruwbg, ubw, wgu, bwbbwgg, wrwugb, buru, wgwrr, rbbggr, rg, bgurwg, gwbb, rurbbugu, gbuw, bgb, wgrb, rgr, uggugwr, bbb, rgw, wurwww, wwwbbwr, rgguuwr, rbg, bguuuuru, brr, brwg, bwr, rggrugu, uwbwbg, bgur, rb, grr, uur, ggr, rruru, gbgu, gugbg, wrrwuggr, ug, ugr, uw, rgrwr, urwrwgwb, guugg, rrr, bwbwgu, uwubr, grbb, gurw, ubgb, bbwbbr, wgwwwgu, rrwr, wbub, brrg, gwwrb, guggrbu, wgrbw, grrubbg, bwwrb, wggrr, uwr, wuwwugrw, rrwgbug, bugw, bgbubwg, ubggbbug, rww, ubrr, wruub, wwgb, gub, bgwwgr, wrugw, brug, wbgb, uguurbw, wurw, gbg, uubwrg, bub, buurg, wurrwb, bwrrw, guub, ruruu, wgwr, ggb, rbrr, bww, rgguur, wubw, ugrb, rwr, uuuwb, rgwww, urw, rbwbu, bwb, buurub, ww, urrrb, wgwwg, ugwuguw, wurg, ugg, g, rbgg, wrw, ruww, wbguggb, rbr, gggww, bwrrrw, gg, rbbrg, bguw, rgrrgr, ugb, uwgu, urguw, grwb, brgg, gbugb, ubwbrrrg, uwu, rgug, gbb, gwg, uru, wwu, ubwgw, wwuwr, ubgug, wuw, uruub, wrwwwru, rrgbubw, wubg, wgwgw, ubg, wbwbu, rrggr, uwgw, wrbb, gwwrbwub, rwu, ubur, bubwu, gur, wug, gbbwbbuw, gwuubwu, gbrbgr, urrgwww, uuururwu, uwru, wgwgwg, rrb, gbu, brwu, uwrbr, wgrg, rrrg, wgbgwrw, guwb, gurr, rbb, wgugw, wur, uub, rrgrg, bgwrgg, bbu, ggwbguu, ugubu, rrbg, rwb, wbwr, grwrr, gggrrbrg, wwwbwrg, wguuru, bru, wwrb, wbb, ubgu, bubu, rru, bubgur, gbr, bubur, bb, guwgugwu, bgu, uug, buw, wrg, ububb, ggu, guuwu, wruuw, wuuw, rgb, bw, bgg, rrg, wwb, gbwbg, brb, uwwwb, uurr, ugbg, gggbwu, wrugb, buwu, gwww, ruwu, wgrrr, guwbrw, gbrb, brru, rbu, gr, uubbrg, buwggbrr, rbuw, ur, wrb, wguurbg, w, gbbrbr, grrr, ggugww, gug, wgg, uggbugu, wuwgr, rrw, uruw, wg, bwgbu, ggw, grgbrwr, rugrbgu, grw, rrwurb, rwrugrr, bgubg, uu, gwbwrb, wwgugg, wrr, wggu, gbw, rwgurww, gwgguurr, gwbwg, bwrggw, ggg, bwu, ubbur, guguu, wbg, wggrw, guu, wugbbb, rr, guur, wu, urbrbrwb, wbr, gwgugbw, ubr, uugrr, rbw, bbgbw, bggruw, ruuwwu, gurgu, bggw, grb, wgbu, bbw, guw, grwub, gggw, bbbuwuw, rgbgubrr, uburwub, bbgwb, rgubgwbw, brw, gugbbr, bbur, gurrw, uggb, wwgbw, bg, bgwbwuw, ugwg, uwwr, rwg, ugw, rrrb, rbuwrrwr, rwguubb, rwgugu, gbrgbg, ugbbr, ugru, ruw, bwbbb, wbw, ubb, rbbbgbr, bbrurr, rbug, rgu, rwub, rrgrb, rw, wwgg, ugwbw, gwu, rgwuu, gwb, bgrruw, wrgrwb, wgrr, gwr, rrurru, urb, gwrw, rgg, bwug, bbgrrw, rgbrwu, ruu, wr, gww, wrwwrb, rggbuwb, wb, rbwubb, rbub, bgw, grur, bwrb, uuu, wggbgb, wgr + +brgrgruwgwurbwwwwwrrgbuwgwuwguwwrwgbrruwrbwbwwrbgrugrwbgu +rugbrguubrwrrruguubrrrbugwgguurrrbwbgubugruwgrg +rwbugwbbbbrwbgrburugrbrgggrrwbrbgbbwubbwwgwrwrbrwuggwwgr +gburgbrgruugurrwrwrwbuggwgbwgggububbwgggbwggwgbwuubwwubug +brgwburwrurrgrwwrubwrrggwuugrwbbbugbbuurwrbggrwburggurubwgr +wrrrbwgbwbrrwrrbwwgwbwrrrgururuuwrrrwgrrwgbrgwbgrr +bwbrgruugrrbuurwgubbrgbggrrgrgwuwuguwwwbrwgwwwwrubgrgu +rgbgubgguurgbwubwwwbwgbbguruwwuwuwrrbwwurbrrubgwb +wugbrwgbgrwuwgwwugwbwrubwugrwbwubwwbbrburwurburgr +uguubbwwgugwugwwggwbbwgwuwggrrrurbggrwbgbrbwbrubgrbrru +buuguwwbbbwgurbgwbwurbgubwubgrwugbrwgrugurrbbuwurgrb +rbuurbugbgwuwrugurbrwbgwbbggruwuwwwwgrgrgurrrwwbgu +ggugwwgurwwbbugbgbubbgbrbrwwwbrbwrubugbbwgbbrgugu +brgrurwbrbguuubbgggbugrgurrwrbbwgwwuwrbgbruugggwwubgruubgwg +brgrubbgggugurwuwbrurbrbrbrgubbrwuubrgrbub +brgbrbwbrbwbggwwwuwwrrwgrgwubuwugwugwrggwg +uggbbrwwuwrbbwubwggurbbrgwwwwbrrbbbugrgurrurbggrgwbgggb +rguwgbgurrwubuguurbgrubbubuuuuwwbwbruwbbgrgrwbrrgg +brguugbwgwrbuwggrrbgrugurbrwwbwurgrguuwbrwubgw +brwrwugwgruuubwrgggrbwrgrgwubwggwbrwwrubgwuwuruwu +grbgwuugrwbgrrubwgwrwbwwuwggwrubrggurruuwubugbww +wruruggurwuugrgbwbgwggbrbbugwggbbrwuuggbbbrbrbuburwuubuur +bgrwrwbrgugugbggrbgwgwwrwgbwguwbwugugbgbwgwrwgrw +wbrrrurrwuuuugbrwuubrwuuwuuwwwwrurbruwrwguuwbgwwbwgu +bgwrwurgwwuwruuuwbuugwggrbbugbgguuwubugrgrgbbw +uwurrurugrwbwbrbbgbrwbgugrrubwrwwwgwrruwgwbrurbggwub +wrbruwuwrbubrwuwwrrrbgrwbwrguwwrugbuugbuurwburwwbr +brgwwwgwbrwbbrwgugwwgrwgwuubwurugwububuru +uurwbrgbuwrwwwrgrbbwwrugwwwguwwurbuwrgrubwrb +bburgwggwbguwbuubgugrbugwbwrrbugwwuguwburuuubuugrbggww +brgubggbbuguuugbggubwrbbbbrrwggwwuwbwrbbgbwrr +brgwgwrwrwuuugbwrwubgbubbgrugguurrgrbrbugggrub +gbugbwrbguubrbrwrgwwwrwuugwwurbwuubwrugrbggurwggbwuwur +bgwbrbwgggbuurwuwwbgrrwurwurburwrwwrbgrwwrrubbbwwwgwgg +wrwwurbbbuuggggwrwugbgrgbgbbrrburuugbwgwrbbbgrgr +ugugwruugwggbwgwuurbrburbrwbububrwubrububwgugwrwurbwbwbb +brgrggruwuwwgbgrgbgrurgbruugruggrrurrgbwuwuuwgrr +bggwwrbrbbbuuubuwwrgbbgbrrwuuubwbgugbuugrgrrr +brgwwrgwgrguwwbuugruwubwbbwwuwgbugwuuurwggrwguuuu +ggbgruuuruubuwgwuggggrgrugubwggbbrwubrbrbugrrg +rbugbuwububgrwuwrrwwgggrwrwgwgrubgubruuurggggbrgw +bubgbgrwgruwburwbbrurbgbbggrurbbugurbrgubgrrgwugbwbb +gwuwrugwbrubuwrrbbubuuwgrbgwrggguuruugruwbgwrurgrbbbgbbubr +gbwbgbgugbwgbwrwbbwbwbrggrugwbgrbubwuwbgwbwgw +urgbgurbwbggbguubuuugwbbrurwrrrrwurwwbwgurgwug +gwwrubburgrggrrrbgwrurgguwrruguururbrrbwuwwgburggub +ubwbruwgggggggbububruwrwbwuwguwgrurrgwugrbbgwwbgr +brgrrrubwuwrubugwubwbubguwrruruwwugrwgwwr +rruwrgruwuwgbgubuwgbgrbruwgbbgrbugwwwbrurgr +gbbuuubrbbgrbuggwgubrggbbugrrrgwrrwbggruwbguugrurwgwrwwbr +grrrggubrbwbgwgwbbwwgwrwrbruwbuurbuguwgwuwgrguurguuwub +ugugwwbrruwubwbgbrwrrrwubguuwrwrbrururugwuuubw +ubggrbggwwrbwbrrwgwruuruwgurgbrwurwwbbbbrrbrbrbgbbbbrw +ggwguuuwgrbugggurgrwwwburrwuwubrrbwururbrbgwrww +rurrurgrgguwrwgguuugwuurwbgwrgwugubbbwbbgwbbrwguurrurbw +brgurgbwbgubbgruwwwuwbuwwbbwbbwuubbwgurwwgrbwbrrwrgwgrru +bwuuggurbwwbgbbugbgburbbwgbbuuugggrrbrgwgrgurbbuw +bbgbbrrgbgubrrbububugrgurgburrwgruugggrrgwgbuwbuugwuwwu +brgbugbuwrbuuwrbggbggbbgggwubwwuuwrurwwgggbuwrwwrrb +rbuguggbbbbrubbugbgurgugbwgurwrbgguuuubrgugbu +brgbugbrrrurbwwgurrubwrrggggwwburubwrrbubw +brgbwwgwbwwrgguwgguuuwwruwwbrrwrrrwrbuwbgrb +rugwgwggwurwbgwubuwbrrgrgrrwguruugbbwbwbrbbubwurububurrwu +rrrurbrrrururwruggwrugbbwurrrwburgrrggrbggbggubrwrg +wbwurrruuwgwuwwgbuwwwgurgbrbwbguubggwrrubgwbgrubgggrgwgg +uwurwuwurrgwbwbwbgburbwbwrbgwrrwuggrbbrrgrggwwbww +brgwwgbbggbugubwrwrgbrrurrbrburgrugwwbwwuuggwuww +bggwgurrwbuguuugwrgbuubuwbwgbwgbbrrbwbwgwr +brgwgugbrgrbugruruwgrbguwgbbrbrwgbrrwbguuwgugwgwrgwgu +urbbgurrburbuuwwuubrwwwubgrbbgrwgbbruurrggwrwgbbuwr +gwrubugrurbbrgrbbwruuwwrgrgrbwwgbuwuuurwuuwrwg +rwwugbubrrgwbrbbwrgburuwbrbgurbbwrrwburwbbbwguub +grubbwbubwwbbwrwrrububbubrbwgugurububbrubwbrb +brgbrrurrbrgbgggwwrbwrgwwbwwgbuwwbgwugrgbrrugwrurwbwbuggww +brgurrbguuwrwwubwbugubburbgrguwrgrgwrrbgrubugrbgrugbrrrr +rrurggrwrwwurwububbggbguubbgwwwrwguuwgwggb +brubrgwgwbbwburgwbrggbgbwgwbrbuuubwwbrwbrbbgg +ubrwrurwgugbrwbuurbwruwrrwgguuuugubwbuwbgrbgrbgwwrbrbgu +wrburwwubrrgrbbgrggrwwwuwuwgwbbgwwggwrrgwggrwrguwrbg +brgwugwrugbgwwuwgrbgbgwgwgwubrgbugwwgrgbg +wrrgwurguwugubwubuuubwwbubuuguubgbrbbuubuggbb +wbrugrwrbwwuubgwwuruuubbgbwgrugrrrwrwrbrurrrbbguuuwbuwwub +brguurrbwgrrrubruwwuwbgugwgrwrurbwbbururrrgurgwrrrgbrgrr +rugubuuggrrbbbbrgrrwrgburrrwrwgbbuwrggbrrubbwug +gbbrgrubggwuuruwubbubbrgrgrgbrrwrgurrbbbuugbgurwbgrbbwbwr +bwwgwubrrwwuwgwggwruuwugwrgwbgwwwugbwwwbrgg +ubwurubwggrrwbbubbrrruubbggwbguuubbburbwuwwgrrwbwrgbbw +brguwwbrwugubuwbbuwbgwbbgguurbwguwguwwbwubwbbruw +buugbwwubgrururgwbwrgwwwgwuwuggurwrrggwuuwwguuggwrgg +wbrbrrugwurgwwgwuwggbrwwugwruwgwgrbubruwugwwuubwgguuwbbwb +wwubggbbwrrrrgrrugbbugbruuwgbrbgbbgbuuwbuuubbbgr +brguurggwgugrrwuwuwrruugwwrwgugubbggbgrggru +buugwggguwruwbgubbgurrwwrwbbbgbuuwrbubrbbr +rwgwgbwgwbwwrbwgbggrbwgurrgbuwgurwggwbbwuuwuubugwwbwbggwu +ggwwwwwgbuguwrrbwbrrbgwbbgbbwuugrbbrbwbbbr +brgrwbgwrbgrwgbbuwuggbuubuwbwgbwbwurbbuwggbuuww +brgwubrgburruwrgwgrurbbgguuwwgbgurggubgugrwrgwwrbggrgwg +grrwwurwbwuwbugburgbguwburwrruggrrwwgrbgggubuurgwwrwwuww +ggwwgrbruuurgbgrbbbgurwwgwbbgwgrbbbbbrgubgur +gwbwurguwwwwrggwwwuburwwwgbguugrugwguubwwrgbwuwbrurrbwuwg +brgrurwubgbgrbwwrwbgrgwgwrgwuguwubggwrgbgubrruwb +wuubguubbgbrrwuguurrbuguwwgugbuuuuugbguububruuu +bubwrrwbubrurwubgbrbbwuurwwwwuwgrrbwbwguurguuugg +ubggburbgwugrbruuggrruguuwburgwbgwubwuuwrgrrwbbrwruuwwgg +rwubbrbugrugwugrrrugrgrgwuubwrbrwuwggrurgrrgwrwbr +burubuwbwbbbwgbwrbgugwwbwwubbbbggubrbrwwwbgrbwwrwuuubbuwbw +wbgwrwrwwbggwbrubgrwbbguwrgwggbbbgbbugwgwurwgugbwrwbwgbr +rrbbrgrbwbruwwgbwwrwgrrwbbguuggggrgubrrwrgb +brgrgubgbgurbbuuwbrwbbbwgwuwugggrrbrgbwgwwbg +gwwrwuwbbubrwrgwbrbbburrrwugururgugwbbwgbgrg +brubrgrbggrwugbgbgurbrburgubrgbgwrwrggrbgwgbggwwgwwbgu +brgbbwgrbguwbruwuurbbbwbwwrurburgggbbwrrgwgwbwb +brgrugwbwbwbgwrubbrgbguwwbwgwgugbwwuurguur +brwwwbgwuwgubwwwgrruggggrubgurwrwwuwrgwwguw +rwwubrgruwwwrwwwwuurggwbubwbrruuwurwbrgurgbgg +brgugrguwburbugrwrugwgbuuurrwgrwrugurrubuwrrurwurruurubw +rbuwwuwbgwbgrgwwwbwuburwrgwurbwbgugbwuuuurwuwuugrurgubu +wurruugrbubbgrrgwgbruwrwbrbrwurruwugurbuurrwbr +uruuuuwwbbwggurwbuwrgrggwuwwwbgubuuuubrwbgwrbbrbbubrwgbb +ubgbgrgggrbgbuwubwugbwwuuruuuurugwbggrwwuwbgbwwugrrbwwrb +ggrbrwwrwbwggwbgrbwwurwbwwbgwugrrrrgbuwrbbgwubgbwruwb +brgrguwwbwwubbwgwwwrugwwwrbgrwrrwwurrrrwgg +brguubwgwuubgbwrwgubggrbbbubrwbuwburuwgurrburgug +rggubgwbwwgrbbgbrrwrbgrrggbrurwrbwgrubrwuugug +brgubuuurbrbbbrubwuubgwwbrurwubwgrwrugrgbruur +bbrruuubrbgrbwrbbgwwrwurbggbwgbgubwbbbgwbwbwwrgguugbw +rbggrwgrrrwwwbgugbbrwgrwbwwrrruwbgbbwbbuwuww +bgwgbrruguwrbrrwugwgbuwwrurwwurrwwuuubggbbugubbrgwrugu +brgbrbgbwggwguggwguwgrrbgwuwrwbgwubgbrwwggubburrurwggbbgbbr +wgbbbuwrrrwgggugwgbuwuuuwwguwugugwbrbwwugwuwwwguu +urbwurbuuurbwggrrrggbbgwguuuuwwwbbwuwuurgbgruuwugbuu +gbrwbwuuwgwrggguwuurwrrgugbwwbrwgubwbwubwuurrwbgurgrwrg +brgbrwbgruuururwubrbuubbrubugbwrrbggurguugbbgwubwurbubwbgbw +rwwuwwbrgburbbbbwrrrugwrubwgruruburuwwrwbwgwgwgguuugw +rrwbwgbgubwbrguwugbwbwuwubggwbugbgbuuwggwugbbbrbrurr +ggruwwwgwrwgbubrbgurgrugbbgbbbuugggguburwwgrbrbgwrrgbgr +uwgbrbuwwgubbgrwbggguurubwubwwgrwwgbwbbwurg +bbguwbwrugguuugwwguubwurbuuurwgwrwgrgbrbrburugwurwgbwgbgrg +rwwbrwgggrguubgbrrbuubrguurgwwggbrwbrwrgwrguwrggur +wwruguurgrguwbwuguuuuuggrgwbgbgwbwwugugbrwg +gubwbburguwuguubbugbrrgubrgbbwuwwurgugbwugbwr +rgbrburrwgrbbuubrwbrbwrurgbwgrrbwbbbrwrggbrr +rwgggwbuggrgbwgubuugwubuggrrwuwwguggwrwuggwrwrugrur +ugububwbwgbwwggbgbgrbbbwurgguuwurbrbrwrrbuu +rbbgbwgugguwrurgrgwwururbwrwuwwgwbbwugrbrugbgwbgurbubgugww +uuwrububugwguwugwwwubwggrguurrruurwuwbbrwbwurbggwuuuwrgru +ggbrrggwbwwuuruwrrbuuwrbbgwwwbuurugrrggbrb +brgrwuuwgrwwbbwwrbubgubgrrurubwgbbwgrwbuurgubuurrubburg +rbgwwrwwgwwuggrwrwuurguurbbwuwugbwugrubwbugrbbgrrrbubugrgb +gugrrgbbgrrggbuwgwwuwbwrwbgbbgwubrguuurwwbbuwbuwgbwwgubb +brgrwwbbrwbwrbwgugubwugbggwgurwguwgbugrurwrwgwbu +brgrwwwwbbgrrurwbuubbwgbbrrbbrbwuwburrwgwuu +bgrbuuwruwubbuuuurgwuwbgrbbrggruwwrbuuwrbuggbu +bwrrwruubbbubbugwwrwbrwgububwguggbrgrrurgurgubggbbr +brgwwgbrbuwbguuwubrgbruuruubrwwrubgurwwrubgr +uwgrrbbrgrruggrurrwruwbggggbrrubugrrbugbwwgg +wbubgwgwwwgwggrwgbbwbgubbbggrruuuwuurwurbgr +rrbwguubgrwbgruruwgrrggwwwgwgggubbuwuwwugrwbbruurwbrrr +wrbbuubgrbwrguwbwurgugrguwwgbwbrwgubbwgrrgwwwuwwgbggw +rwrbuggbbwuwwrbubugurbbrbubbgbbuggwgrrgwgwgbbrbguub +brguuwgrbubbrbwwuugwgguurrguubbubgwbrbbwrwbbbuurgrrrb +brgrubrggrurwuuuuububgruugwwurgwwwrggbbwbbuwrug +brgrgrbgrwgwgbwrwbgrbwgbbwrbgrbuggbwbwuggur +wbggrgubbwwbwbwbggbbrurwggwrrruggwurrurbbbbgbbb +brguwgrgwggubrugbuguruubgrgbugwuuwwgwubwbbbrgurbuwg +brgbbuuuwbwuwrwuwuwgwruurrggggbgwggwwruwbwbrwrruubrwbgu +buwugrbubwwwgwurbwruuwrubggbwubbgrwbwrwrurgbrug +uwugugbrbruubwrrbubrwruwbwgggbgwrugggbwrubburubbrb +brwwugbrurrbubwwgbugbbbbgrwwwwbugrrgguwgwrgwwwubr +bbrwgwrrugrrgrbugruurgburrwbrwuwrbuwuuuuguwgbur +wuubbrwwgbrgugbgugrbrgrgwbwuwuwbgbbrrrbguggbrr +bbuwbggrggwrgwbubbuuwguwwrwgruggbrrwubbwwrgrgwruguwwggwwgu +gubrbrrubgrgrbwwrwgbburruurgurwrwgwbguurwrbrwwbruuuru +gburgwgggbbgruubwwgguggurrbwbrbrwwwgwbbuuwbuguubwwgggwww +brgrbrbbugbbguwrbugubwwwwgrwrbgwuwwugrwwggruuruwrwwb +uwwgbwwgwrgwrgwwwuurrrugburgrurbwggbbrwruwwrgwgugg +wwubugugbrurbbggurrguggwwuguurbrugbbwurubbbgwrrwbb +rwbbugbwrugrwrwwrruwwbbrugubbbgbrubruurrwuuugwurwggb +gbrrbwgrruwrrgbwwwbgwrrgbuwbrrbugrwwbubrwbrgrgwrww +gbbwwrgrbbggugbgwrugwwbgurgwwbwwwrwruwguuurgwbugburg +brgubuguruwurrgugbrwrwbwugwbrrrggwwrbuwrrwrbrrggburrbwg +brgwuuwubuwguwubgbwgwwrubwwuwbrbgwugbguuubbuggbww +uwgbwurgwwrgururrwbwwruuwuuuggruggbwgugbgrub +bbrrgggwwgguuggugurwwbgrwugbwwugbrgbrggwrgbggwurbwwubug +brguubwwuugwggubwbbbrrwrwubggruuuubugrrugbwwgrubwbggugwwbuuu +wuuuurbrrgrrrrubuggbburrrbwwgurrurbbwuugwrrwrubru +bbuuwwuubgwbrwrwwbugrgwguwuuuubbgbwrrgurugggbguu +wwgwwwugrrggbgwgwubuwuwugbubbbbbrgwwruurrgrugrrgwrrgrgb +ubwrgrggbrrruruwbguwrurwuurugggwrburrubggbgbuuuwg +brguwrgwbwrwuwwbwuuwrgbuuuuwgwwgwbbgwguwwgrwbuuuwwbrwbbr +brgrrwrwubwwbwbuuwgwubgbbgbgwwgrrrugbgru +brgbbruggubugugubuubwuwgwgwgwugwggrbwubbw +rruuwgbggrwbuuggrubgwwubbwrrwrbwubgbrwgurbbgrgg +gbwgwuguwrrbwrrrurbuguuggwurbbruruwuburrgwbgrwwb +ubuurguurwrbrwurruuwgrgwwrwbwbrubbugbrbbubg +brgbwwbgwwwrwrwwbrgbgbrrbbgrwrbrruwbgrggrruwu +brgwggbwwgurrbwbgbugrbuwwugbgggwwwrbbuggbrbr +brgbuguwbwwugrgrbgbuurrbuurggwwwubwwrbbburrrrrbrgrggrrwubruw +gbrgwwruurggwbwbbugbwbwubbguubgwrbbwrrwbrwu +rrgggrggugggrgggggrwrwrwrrgbrggurbrburrbbwwurggbub +brgugwugubuwwgugrwgrwgruurbggbguwgbguguurwburwg +gbwgugrwrbwrbuwrrwrugrwwwrbubwwwrggrrguuugrgu +brgbgugwrubrurrrbwubgbgwwrggrubrbuwuuruuwgbwgrbrrwuurwuw +brgrgrrrrruburgwwbubwbrwrubrwrwuwbgrrbgrbguuuurubwwb +brgwbwgubwrbuwrrwuggrwrubbbwurburrgwruwgurgugrwgubrrugwu +brgrwbwbrubbubgrubbbguwgguwrgwbgurgbgrwrgrburuwgbrrw +brgbgwbbbgurrgbgwwuuwugwrugrggwubbgurbgbuuwrwwuggbrggbbuwwr +brgwuurgbuggggwwrgbgwguwgbbuguggggwugrwbw +brgbgrbrgbbubwwggwwugbrrrgbbugguuguwgrgrrwu +brgbuwrggrggggbbwbbwuwgbwbwbbubbuggrgbuwwgub +wrwuguugrbuggggrubrgwgwbuuburgbuggwrwrwuugurrugrbru +brgrrgrrrbgubrwuurgurbugwwrwggubgwugguuu +rbrwggbbrbbbguuwrgugrrwurbugrwwgwugbwugbwbwuwgw +bwuwwrugrwwubbbugurbrbrwrubbwrbwbbrgrgrwuu +rrruurrubbuuubuwgurrbruubwbbgurwuwgrgwubugggwbgurwbbggr +brgwgwwbwugrrwurrrurugbrggwrwuuuubwbrrrgrwbrugwwuwgwr +bgwuuuwwrrgwuuurwbrwrrgrwgugwgwubugbrugbgrbwgbrr +brgrbuwbgbgbugwwruwururrggwgbwggwguubguubwuwruubgbrwwgg +ubuwrwrgrrrrurrwubggwuurrguwwrgggubwbbugwbwug +wbrrrruwubrrrgrrgwgubrwrbwwrbbuugwwbuuggwwrugggrwgg +wwbrruwbbgrwgwrguwrbrgrbguurubbwuwggrwrbbgbwwwbbrguuurgrwb +rbwrrwrwwgruububgugbuwrubwbuwuuurrbwbwuuwgwggrgb +rgbwgruubgwruwuwrbububwbrguuurrgbrwbgbwwrrbgbbru +brgrrwgbbgrbbuwwbrrruubbgbbbgguubrgrbuwbwwwrbwgggwurwurwww +brgurggwwurbwbrgurgrrggrwwwbgubguuubgubwru +wgrbbbwgubbguuuuguwbbuwwgwwbgrgrrrrrgbgrwwrwgubbb +brguurbbrwurrurwbbwrbbwgbwrrgwrgbbguubgwruubbgug +rubuguuurrwbwrrgbgbbrbwwubburbuwuwgbubuuur +brgwurwrrgrgbrbwbggubwwwgwuuguuwurrggrubbwubuuwgb +brguuuubruwgbwwrwrububgwwgruggbwwgrrugbbgugwuwgwwruggwgw +brbbuubwuubgwguwbubrrbbgbwrrwuwgbwbbuuugbrbubrrwugwgbggbb +brgbubgbggbrruurrwrgggguuwgubbrbwrrugubrrwrrbugguw +gurrgbwwrbrggwrgbubgwurwwrbwurburuugwwgrbbgrgr +uwubrgwuugbrgbguwwubwgrbuubbwgrbbrwwgrrrwrrwrggrww +brgrrbrbruuguruwrbrurrggwugubwwrbrwrbbuggrrbrw +buuuurgbuubrugguwggurrrwgguuurrbgubbggrwuurgugurwrgu +bbguwuubwrgwwrruwrurwrugbbubrbuggbugbbuwwbubguwb +rbbuwbwrbwugwbbrrgwubwbugbwwugguwbgrbgrbwrguguwbuwbrbbbgw +brgrggubwwgrubwwgbuubrubrwwubwrwgurbugbbbwbggbrggbggg +brgwwgrwuwububrugbbwwguurubwwwwuggrurbuburgrbgurugwb +grggwbrugrwbgugbubbuburuwrgwwggbwggwururrwwgrrgwbwwr +rbgbbwgbgwrbburbgbrubuwrbguwuubgrbwuwrrugbugrrur +brgbbwwrbbgwbggrwrbuwbwgubbwgbuwggwrruwwgwwuwug +urbgwrgrwrwwbuggwwggurrrgwwrbwubwwwbgwrbbwubbrrw +ubgwgbwgbgwwbwbgrugwburrugwbwugruubbburbuwrbrrggbubbgg +uugrbguwwuugwwwguguwrwrwburuugrbuuwgwgwuuuwgwgwwgwugwwugb +gwrbrwurwggwuuguurwrbugguwuburguwwrwgburbuwbgugr +gbgugrbgbggwbbwugwuuugbgbwrwwrwwrurrrbguww +wgbbbwwrrruwggbgruububgurrurgrgrbgbbuwwurguwuggbggrbbgbw +brgwuurubgggubbggwgwbwrubwubugwrgbgbgwbrr +gwugbrwurruwubwbguuwwggbgwrrwrbgrbwrubwwbgbbbrgwubg +wbgrgbubrbgbwbrgrburbrrwuuwuwgwwugggrgguwb +brgwbwubbburgrwububgbwrwugwwwbrbwgrwuguwrwbgubguwuu +gggggrwgggrwbugbrbgugggrgwbrrbrbgwbgurwuwgugbbgggrw +bwrwuugwuuuwwgugrrgrrbrruwbgrugwgrrgrugrgrgr +brguuuuwgbwwwuubbbrwwgbbubrurbrgbuwbwwrwwuurbrggbugrub +bbburrgrugwggrgbwwwbwbrbwuwbrwbrbwgruwbubbw +bggwgwwugbguwrggwwgrwgwwbgbwruguguwbgurrwbwrugu +brgrwgrwrrrgwwugbgrbwuwwbwwwubbugbwgbuggggwbwwrrggwbrwrgwggg +rbgugwwgruubguwwbgwgugugwurrugrbburuwbuwwurwggguugbbguur +ruguguuuuwrbgwbuugubbruguuggwwruwrwgrggbbggrgrrugruubrw +uuwuggruuuwwgbwrubgbuuugrbwbbwgwrbbggguguuwgbwwugwbg +gugwwrurgrgrbburbuuubuwgbwwgurbuwburbugwbwgbuwrruwug +rbrwgrurbrbrwbuwbwbggruwbruggruuwrwrwwrwwbgbwrbbburuuw +wugguwgwgwwugrbgbrubgwwrurbwbwwggwbubrbrrurrurwrgugwugbgrr +bgbgbbburbgrbbgbwrbwurgbwrurubwrwgrbwwwbwuwuwgrbuw +rgurbwuugbwugrwbruugwuwrbbggbwrrgrwuuuggubr +brgwwurruburubwgrgwrrwrggwbwguwrwbggggubgbuw +wwuuwugbruwuurguwubburwbbbgubrgbggbbbwgwrubrgrrugg +urburubububugwwrbbgrruwuguwrrrrubruurburuwuurubburgw +rgbwggugwrbuubwwuuruuuwurwgbrbbrwgbrwgwuwbrgbrgbburruwwug +grrwgbrgbwubgbbburwburbugbrgbrgurwbbuwbgrbgugr +brgwugwrrbrgrwwwbguwurbrbbwgwbbwuwbrrurbrggwgr +uwrrgwrbugurbggburbbrruubrrrrbururwgugbgguurugwrbwrr +uubrwbbbugwggwruwrggwbgrwuwbrrgbbbrgbgwgggwbbrg +wwrrbbuuwggbuwugrugrrwrrrwwbbwwrruubbwgguguwwuuuwg +gwgbrurggwwrgguggguwubrwurwrggrubwrbrwgwwugu +grurbgbgwwwwurbbrrwbuwuuurrgurrgbwgbbuuugbbrbw +wrurwguguguwgwbbrbrguuuuggbrbugbbggbwgrwubwg +wburuburbuubugrbugbuwburbgbwwbgrgbbbwubuubrw +brgbuwbugguwbrgrrwwubbbburgrbuwwwgggbwwrugwgwbwbgb +brgurbwubgrwbrubrbwuuubggurbwwgrrugrwruugugubgubg +urgrurbrbgugrrggwrbrwwgubbguwrrggugwbbugrgrgbuwuruubbrgugb +gbbbwrubwbgrbgubgwwuuuuwbwguuwbrwwgbggurbwbrubru +guubugrrggggruwbgbuuggbbwrbrwrbbbugrgwwwrbburuurbggw +brgwruubuwwrrgwbuwgburgwrwuubrubrwgwwruurgg +wrrrubbubwbwuuuwuwubwwguwbggrbgrrbrgurrbgrrbugwbwbwgwurwuw +ubbggbwuggurgggbbwbbgrrgrurbbrrurrrbrrwguuugw +brgrurbrwwgbbrwwgbrgwugrbwubwugurggugbuwur +brgugwbrwrwurggurbubgggguuuubgwwrgrbrwbrb +brgwuwgrgwubbgwgburuuwruguugurubrbgubgbwgrubuwrr +brwgggwggbrggrguugggrbgbrggwggrwbrwbwrrbgug +uwwgbrbrrrrbbgwwubrrbuggguwrbuwwggruubbrwbwubgggruuw +rwgwwuuggbbuwwubburrbguruurggrbubgrbrubrwubwwururgbb +brgbuuurrwrbuwwubgrrubggbugbbrbwbgurubrggbu +brgrwurugrgrgwgruuwrrrrubbrbbgrbwrgrgrrwwgwwwggwubwwgu +wurbuuggubwwwbrwgbrrwugbuwwrguuugubruuwgbruwwrubg +brgwwuuuuwrbruwurbubwrubuugggurbwrgbwgwbburbrbrwbrwggb +uwbgbrurwbrbrurruguurggrbuwubbwwruuwuruggrbggwwwrbw +gugbbggrubrgwrwrwwbbgbrubrwrgugruggbgwubuwgwwwrubggrwgu +brgubgwbwrwrwugggrwrggrubgbuuugbgbwwwurrgrwruwgugbrb +brgrruwuuugrrrwrwrwugbuwbuwrrwbbbrbubrbgrgbuuwuwwr +brgwugggwrruuwurbrurwwbbgbrugguubrrububggguruubwbruugwbrrgr +bwgwuwrgrbrwgbbbuwgrruurwrbburrwggubbuwwuubwuurrb +brgbggurbguwubbbgurubgwgugwbbwurgwrrrubbrwrrwr +brgbbwbuuggbuggbubwgbuggrgwwggwgugwbuuwwrwbugw +wurbrrgguruwgwurgbbbgrbruuugwgrgwugwgurgbbwubggrwurgrwbu +ggruwrrbgguwgwugggguguggubwgrwrgurwwubwrwb +ugrubuwggrbbrwurbubgbbgrrwbrbrbrwbugrgggrwbrgrbwrbbuwwr +brguubwwbbuwggbrrururugrurguggwubgggrbggbrw +gbwwrbuwurwuurgggwbugwrbugwruwwbrrugwbwrbbwbwwuuugrwguwg +brgrrugubwubgwbwuurruubbuggrruruurugrrbbwrwrgrwb +bbgwbrgwgurrubwubbwwwwgugrrrwubwbwurbgubrrwbr +gruubuubwubugbrwbbrwwuuwwrbbwrgrbrwgwrwrrgggguugbwwbwubu +brgwbrgbgrgrwwbwugrugbuuwrugbbgurgbbrbrr +brgwrburrbwwgwwwggwbgrwgbggburrrbwuwuwgrbrbwrggwbwugwu +wgrrwwgurbugrwubbruugwgrwuggbgguuuruwwgbrrrbg +rrrubugbrrgwruuuwwwwwuurugrbbrbuwgwuruggrugggwugbu +brgrwruwrwrruuurggwwguubuwuggburrrrrbrbugrbrwruwwrur +brgbbguggbgbbgbrugwuubbrbrrbugbbuwurggugrbgrbwrbrbw +brguwggurwwwrugwrugruuwbbburgurruwwwrguwbbwuugbwrgbw +guggggbuwgggrwwwrgwrbbwuruuurrburrwuwgugwu +brgrugwbgrgurgbrbgbrrwrwrbrrwruruwurgurgrbbbrr +rwwrwrubuuurrgrrgbwurgbbggubrrwrugrgrrbwrwuu +wggwggrgrbbuwgrubwbbbbuwgrubgrubrwbgbgwrwbwuug +brgbrugrwuuwgrwubgbuuubwbbwruggrggubrbbbgwg +brgggwbguubbwbgrbbwbwrbuwgrbruuwrbbwubgrwubuwruwr +rrgwrbgrwurwbgbwgbgbwgbrwugrubbrggbwwugwwgbrrw +wggbgubbuwggbrrgwuwbwruwubrruguubwugrubgbbbwrugrrww +gubuwuwrugbwggwruwrbggbuuwurgubrwubuwgrwrbbwuurggu +brgwuwurgggurrgbrguguwbgrgguwrbrwwbguwubwrrrugrrwbrrrbrgu +brgwwrwgbgwgbrwbrbbwwbbrrgbugurgrwggggwwrrgrb +wrrrgguurubgurbgbwuwwrwgrbggrbwgrbrurgugbrg +bwbbuurbwbwwrwggwwbwbrwrwrwgurwbbgbububrgugrubbbgwrb +ruguggwruggbrbbgwbwuuruuwgwwbbuuwbbwwrwrwuuuugurw +rggbbbuggruggwwwgrgrurgugbbrgrwwgubggwbrrgrbug +bwggurbgwuuburuwwgwwbbrggurbururrgubbuwugurbbugruw +bgrwbrrbbuubbruubrwuuuggubbguuuuruwrgrbbrbbbruurbrrwgbwbrg +ubbbuwugbrwbwurbgwrrwgruurwurrbuurrrgggwurbuuwrgbrw +brgrrurruwwruwrgrgwrwbwggwbrgruguugubggurwrrubug +ubwubwwrrgbgrugbbgwbgrbuubguwwwbguwbbgrgbbbwgwg +brgwbwrguugrrbguggwwbubrgwbrrgbbbgbguugguuugugugrruwuwrr +wbugggwbrwuwururubwuugguwgurrurgggrbrbwrwgwgubbbgrrbgu +wgurwubbruburgrwuurrbwgwuwrrggubrbguuuwgwbugubbu +brgrbwrbrbuwururbuurgbrggwwgrbgrwbgbwrwggburwrw +grbuwrbugbwuwwggbrwgbrubwgrwwrwrwruuwwubuwurwwgrbuguru +ggwggguuwbbubgguurrwburgugbrrwruubguwrwrruugrwwwwrbbbbbr +brgwbwgrbubgrrbuuguggwwgrrrgwwwuuuwggwgwggwwrurbg +bbugbrwgugrururruubbrubrubrgwuwguggbguubburwurbrbrgbbrug +brgbbbwwruubrbuurwgrgggggubrbbbwbbrubgrurrgrw +wwgrubwbrwrwwrgurbuwbgrrrgruuburwurrgbrwbggb +wbuwwuubbwguugrbwwguwruubuuwugwgwgwuuwguggggugwrbubgrwgu +wrubuggubbubrgbbwbuuggrbrgrbbbgbbrgbguuwgrgrurrwb +rrrrwbrbrbrrrwbwuwwwbwubugburbwgruwrwbwurbuugwbuw +rguwrugwbruuggrbgwbbbbbrbbrbguwbguruugurgw +uwbugwgwrbgguubggwwbrwrrrrbwbbguuurwwwwwurrugg +ggrrbrwgrwrgbbrbwwrrwbugguwgugwuuguwbbgbuuggbggwggubrr +ugbuguugwwrubgururggwuguururwubbggbgwbubbrbbubburbwu +brgwbbggbbggwurgwruwuuuurrbururubbwuurbwwbrugbubuwrggwrwww +wbuwgbgwgbbrwrgwrrgbrwbugwbgurrrwwbrrbguwgrubuwrubbbb +uwgrggggwbrbwgruurgubrugbuubbuugubwbbrbrrbwuruwr +gwurubrgwgwbgwrbwwbrwbwuwrrwwurbwwuuuwbwubugbrguwb +brguwrgrgubrgrbuuguurgugbgbbwwwrrbrwgwbguuruwgrguub +gbggrwrguuwugwbwbrubrrgwwwbruwrbwbuggggrguwwrguwgurwbu +brbwuurrrrbrguwururrgwrbbwwgbruwrbwgwbuwwgr +bgwbbwwrgrgugwururrrrwbggwbrbbbwrwgwggbbrrrguwuuwgg +brgrwgrrrgubuubwwbubruwwgbuggbbuggggwbruwubrurbbuguu +bruwbwgbwrbbubuubugwwwwwuruubwugbrrubuwgwrwbwbwrbgw +uggwbuwrgrugwgwbbguubbggwggbuuguwruwrggururwrrubrwwggw +wgbugbbrurwubrbrurgrgubwguggrwrgubuwwwugbbggubwrrrrbggbbrr +brgugwugruwuuugurgwbwbgrrwwbbuuugrrwrbbgugrrurgrr +ugubrrbugrrubgugbwrwwbuurguubbrurrrguubbuwburgg +brbuwbuubgbruwgrggwwgwgrbrgugggwwgbrgruurrruburgugw +brgwubrrwruuuuuuwurbrbgbuuwwgguwwrrgwrbrw +brguuwrwwruwguwbbrwgurgrwrrbwwbugrrurgwwwbwubwgbg +brguugbuuugurwwbgrrgbgwwbbgrrwuuwgrwbbubrru +ugbgggbrrurbrrwgbbwgwubwbrrrggguurrggrbwruwrugwwbwburbgg +uuururwuuggrrgwwrbuwggwbwuurwgrwuwgbuwrwbbwurub +brgrrrrrrwrgwgbrgbbbwgrgwrrbbgwwbubuubuugruwrwrg +rrbbrggwgugwwgwburwwubbugbwgurgbrwbwrgwrbgggrg +rgggwwwurgwbwgugwwuurbrwuuwrurrrrgurgwwugwgrb +brgwbbubwbgubrrwwuuubuwbbuuubrwbwuwwrgrgrgggb +gguubbuuggrbbwbrwrugrwuruugubuwguurrwurwbugwrgwgwguuguruuu +brgbbrbruubbgwgubuubruwbwbrguubgwwguguuu +brgugwwrbwubwwrbrwbbrrwrgbgwugwurrgugbuwgrrwgb +brgwuwbguwgbrrurgguugrrwbwurwgwbgbuubwwuuw +brgbrwbrbruubbgbruuwruwwubrbuguubgwrwurruwgwrrwrwuubbrur +brgbgurwbwwrbrgrgggrwbwururwgbugugbwgubwbgbwugugwrwwubggbbbg +ggwggggwgurgwbubrwgugwuuggwwuwrguubwrbggubbgrwbruubbuwgggg +bbwgwbugbgrgbguwbrwwwgwrrbbbuwwrgruwbwgbbbbgburgwugwrwrwgb +gubbgrrrwrwrbwrbrrubgubggrwwrguwrbuwrrwguruurwrwguuuwwgrgg +brguugwugbburrubggrububwbuwrgrurrgwgbgwwr +wuwbbgrwwrrgubgwbwwwbwruwwgbrbruggrrrubrubbw +rururwwgrbwbubuwwrurruurrbrbwwwwgwrgrbugwurbwr +rgrrwwuubruugwwgwrbwubwgrrburgubrwuwwrwwrbbbgrrwubrgugr +gbwrbwgurgbwggurrwbuuwbbuwurggwggrrbwwugbwrrwgrbb +bwgrwuggwbuubbrbguggugubwrruwbbwrwggurubwwwwbbbrbubub +brguuuwrrwwgbgwuwrgruggggggwurburubgwbrrrguguwwrgrbggrbbwg +brgurburbwwubggbguwgugwurwuwbwgrwrruuurbbwbrruu +brgrbgrwrbwugbrbbgwwguururbbububrwgubrbw \ No newline at end of file diff --git a/src/test/kotlin/adventofcode/year2024/Day19LinenLayoutSpec.kt b/src/test/kotlin/adventofcode/year2024/Day19LinenLayoutSpec.kt new file mode 100644 index 0000000..3589c08 --- /dev/null +++ b/src/test/kotlin/adventofcode/year2024/Day19LinenLayoutSpec.kt @@ -0,0 +1,5 @@ +package adventofcode.year2024 + +import adventofcode.PuzzleBaseSpec + +class Day19LinenLayoutSpec : PuzzleBaseSpec(6) diff --git a/src/test/resources/inputs/year2024/day19.txt b/src/test/resources/inputs/year2024/day19.txt new file mode 100644 index 0000000..ad43a74 --- /dev/null +++ b/src/test/resources/inputs/year2024/day19.txt @@ -0,0 +1,10 @@ +r, wr, b, g, bwu, rb, gb, br + +brwrr +bggr +gbbr +rrbgbr +ubwu +bwurrg +brgr +bbrgwb \ No newline at end of file