Day 19 part 1

This commit is contained in:
Sven Weidauer 2024-12-25 12:40:49 +01:00
parent 4807b2a033
commit 97fa4abec0
2 changed files with 423 additions and 0 deletions

View file

@ -0,0 +1,21 @@
fun main() {
val iterator = readInput("day19.txt").iterator()
val towels = Sequence { iterator }.takeWhile { it.isNotEmpty() }
.flatMap { it.split(",\\s*".toRegex()) }
.toList()
val part1 = Sequence { iterator }.count { isPossible(it, towels) }
println("Part 1: $part1")
}
private val patternMemo = mutableMapOf<String, Boolean>()
fun isPossible(pattern: String, towels: List<String>): Boolean {
if (pattern.isEmpty()) return true
return patternMemo.getOrPut(pattern) {
towels
.filter { pattern.startsWith(it) }
.any { isPossible(pattern.substring(it.length), towels) }
}
}

View file

@ -0,0 +1,402 @@
gwrgb, rwwr, rrgwbgg, rwgw, wwgu, rrwuww, wgrw, wbgw, gwrg, ugbr, uuru, bgu, brrur, wggbrb, rurrggw, rggb, wgww, bu, ubwug, bruuu, u, ggbrwgb, burgbub, wrbwguuu, wgb, burugbu, wwgr, uwb, grr, ugu, ggbuu, gbrb, guw, buuguu, rrbrrg, wbgurw, wurr, rgbr, uubu, gwr, gbrwu, ugrru, ugbur, urrrwgw, wrbgrw, rruwr, uwwurwu, wbgbbrb, rbwugu, wrr, wub, rggwg, rgw, ugwgbbr, gggg, uwuuwbww, wwwgw, uub, ugurwwgw, ubrg, rwww, grgu, uwu, gbu, gru, rwrwb, wrw, ubugrb, ruu, grw, wbrggg, wbwwr, wruburw, wurb, wwg, bwburg, gwrbg, guwgr, gwu, wwwuw, wwbrw, gruw, uwbggr, uww, gwb, wurrgg, uuww, rwgwgr, wubg, uuur, uwrrrwu, bbww, wgbwb, rrgg, grggwr, bb, ug, wbwr, rw, rbbru, bwbbub, bur, ggbg, gww, buruggrr, bgbw, rru, rur, brbbr, urug, ggrburu, rgb, bwrwrubu, uuugw, uwgwwb, wgu, wguwuww, ruw, gub, bbwb, ubbgrr, ggr, rug, brg, rwg, ubgwrgr, bwwbw, rww, bgruwuwu, uuw, guwr, urg, urr, gggbwu, brub, gruwub, gbbr, uru, wwur, grrrwbg, rr, guwwuw, ruwr, bubw, bgru, bbggb, wuwbrrg, w, rgr, rguu, wugr, rrbubrgg, wugrr, bru, ggguubr, brwgw, gwbbgbgr, bbu, brr, rubgu, burgrr, wwgw, rwu, rrgubgu, uwr, bguwbr, gw, gur, ruurb, wbur, urub, wrwbubg, ur, uggwr, bbbb, rrg, rgwg, rguw, rbwgr, uugb, grguwwgr, bgubw, bbg, rgbw, wgwrubrr, gwug, ubrugwr, uuwgur, bwurw, ggu, gubb, gbbub, gwg, gugw, r, wgg, wwbb, buubg, rgbwubug, urbb, bg, wwrur, rwr, ugug, bwg, rbb, bbwgru, gbr, urgwb, rbuwub, gbb, rwwgw, grb, wrbw, rrbbwr, rrrubb, rrggr, uugug, rwbr, rguwuuw, wwu, wruggur, wurbb, urrg, urgwrrr, uuu, wrggbg, www, rwrgg, wbguru, bwgr, wu, bbgr, guu, wbrgurw, rbg, ubgrrg, uggrw, wbbwgwbg, uur, brbrbggb, uwbrr, gwrr, ugw, wg, wrrurrb, uggb, bw, urgwg, wwrbwu, bwwbguw, bwb, brguu, ugrbr, bwrg, bbw, bugwu, gb, gugu, gwwurwu, rbw, wuuw, guug, ubb, wrg, uguw, brw, bgg, wrgr, wbrugb, gwgug, uwuurug, rrgu, brrrwu, wbr, uu, rwrru, uwrgugw, gwugu, gugrg, wgr, ggurb, wrur, wgwrug, bwuw, bbrguu, grru, bwur, grgbgbgr, rggub, ggb, wbb, uubbrw, wubb, rubrwb, gggrg, bwbb, uw, rbgwrg, wbgr, bggbb, rwb, buw, ubr, gg, rurrgu, gr, rrb, ugb, gbrrb, rub, rgubbbg, wuwg, wrgu, wbu, wbwgb, ruwbguu, gbbrgbu, urgbgb, bgr, buu, wbg, uruuw, bwuwugw, wwbrr, wguu, rubru, bbb, urb, bug, wgrbw, bwu, bgur, gu, ubgg, gbbw, uguu, rwrb, wru, bubrwu, wwr, wuwub, bbr, uug, burw, uwg, rurwbbr, wbw, wbwb, wuw, wur, brbwr, wr, wbrwug, ugrgwu, wb, ubu, ggg, brb, wwb, ubg, gug, urbuwg, rgg, b, br, wrrbbw, ggbbg, rrggw, rbu, brbrw, rbwrgb, ubw, wuu, gbwur, gbg, bbbggubb, wguuub, grrbwu, gwwgb, rbwru, ub, gwbub, burgu, wgw, uurbwbw, brrw, rb, brrbbbu, bggg, rugr, ugg, ggw, gwgwr, grurw, bwrgbw, bbgwuuw, rgbwwu, rrrbg, bggu, brwb, bbbgur, ruubrb, wubgrru, brrg, uubbr, ubbrugrw, gubrurwr, rrw, wrb, rgwbw, uubgru, wrwg, bgw, ruuw, gbwrg, ww, rrrbw, gurbrr, ruuug, wrrr, ugr, wubbrwbg, gbwrwrgb, bugr, gruuwg, rrr, bubg, bgbrwr, wug, rgu, buugwb, grubgr, grur, gbw, wwrgb, bgwub, rbr, rrwb, gwuwrb, rwwbbrr, grurbbgr, wrwubb, urbrwug, bbrw, ubbb, bub
wuwburgbbuuwbwrgrgbrrrbrbuuugwbgbuurrwrbruu
wuwgbububbrgbbuurbrrrbbrwgbwgbubrubbbubwgwubbwbbrrgrwbrwgrg
uruwrbbguwugrggbuuwwggrwgbrrwrwgguwbbugwruubrbrruwgrg
wwgwbuubgbgwwrbrrrwurwrguubwwwwgwwuuurrruwbrurwgwubwgb
gwrruurruwuurrwwbrwgbrgggbbbwwugugrruwrwuwwwuwbrbbrwrurgg
bggrwwubruuururwrrrgwwggwwguguuubruwurbgwbwwuuguggrruggrg
ggbuburwuwbbrwburgrwbwuwgrbruwgwubugrurggrru
wbrgbwruguruwugbgbugugrrruwggubgurubbrubgrrruwrwurrruggbbb
rbbuwbwrugrggrbrugrbwggrrggwgbwrwruburwggb
wuubuuwwrbgbwrwbwwrbbbbbbuugwrgruuuggbbgbubrbbbbwuurrbuwr
bgggbrbrbggbgbbwwrbgrwgguuguwbrurbbrgurrgwgrrggbuugwgrg
wwrugbrbbbrrwurrggrwgrubuuguurwgbggubuuubrubuugwg
ggrbbwrgbbubgwgbwgrgruwgwrrgwggwuwbuwrgrg
rbrbuwwugugrwbbwgwbgbubwrrrruguwguwugbwbrwuw
brrugbguguggrgurgbwwgbbruwrrrrwguggguurruuwrgwwbrwbuggrbb
bgbrbwbbbrbbguurwgwwgrbuwgubrurwrbwwguuwbbr
rgubwrubugugrbrbguggruuruwwuuwwurwgrbgguuurbbuwuurbu
gwubuwuugwguugwbrrguugggggrgubgrugwwgrwbgbbbww
wgruwrbrgwwbuguwgwwugbuwbbrbuguurgwbgbgbbrgbrgruwbbgrg
rrggwwwuwgwrbbgrurgbrggruurwguurwuwrwwbgruugrubrgbuuruurggrg
rbuwubbwbwguwuwbwbrurbubguubuurruuwugwwuggrggrrwwuuburrwbu
wwurbrugubugbbruugrrggbgwuggubbgubgwubwrbwrubwubwgrwburwgrg
ubwubruurwbrugburguuububgwgwurgwrbgbugggrgrgugwgw
rgugbbgwbbwubgrggruuwwbgrgrbwwbwwbbbgbggbruurbgwruggbww
ggubwwrggbuugbugrbwuugrrwbuwrgwgbwwrrwwgbuwbrrurgw
buwgbbwruugbugwggrbgrbugbguubgwwuurrwgrg
uwrbuwurgurwruugugwbbbwrbbrurbwguuguwuwwuwwgwwbbwrubbgrg
rubrrurguubrugrbbwbwgruruwwbgwwgbwgbgbgwubbrubuwwgrg
bgbguwrbbwgbbwugwwruwrrwwrbuggurrwwuwwwuwugrg
urbrbwwbrubuggubbuwuububugwrubrbwurgrggguurbuggrg
rrwwuwgugrrwwwbgbrrrbwgurrgurwbrbrwuwrrugwrwbubrggw
wwbrwuwrguuwuugbbwrgggrugbgbgburwrrgrubgwbbrwbwbbg
wgwwrrguwwwwwbgubrwwrgrbwgggubgrubbuurgrwubbbbbwbgubgguwr
gubrggugwbbwuwwrbgbbbrbwbgruwbrubbruwwurbuwrgbgwwwrwurgr
wubwrgubrrwbbbwrwrwrwuuruubgbrgrbgbwbrwrwwubb
bbubwwrugububrbggbwwbuwbrruwwrwbgbbrwrwurubrwbwgurgrg
grbwgbuwgburugurwbgrwbuggubbwrubbwwbrrbrrugguwgbwgbggrg
gwuwuwbgwbwwrbguuwwgbuwurwwgrgubuuwrwuugrubwgbbwrggwwbbgrg
uubbbbbgwwrwbwbugrgbruwgugwrgwrgrgwuubggrg
wgggrwuwggwbrubuwgwgwrubwbuwwbubuuggrubbugwbgurrgwwugwrwr
bruwbbwrrwgrwrruuwgrbbbrurbbrbwrwbwrbrbbggubrbgrgrg
rbggburgrurbbgrgbwrguurbugrwwgruburuwwwburrrwugbugwuwugb
wubgbububrwbrbgbwuwbrrrwwwwwgbwrwurwrbwgbubgggburwbrwbgrg
rgwrurgwburrwgwwbwugbwbuwgugbgrgugurwbuuuwbugrg
gguggwwwbbwggwrrrurwbbubrrwrggurrwuuwwrgrg
rrgbbgwgwgbbbbgbrrrbgwgrrbgrruuruwuwbubwggrg
rrbbwrrggbwbwuurgbwrgruguubwgggrrgurrruwruggrg
grgruwurwbbururbwrrbrgubgbrwgrbbwrrgwwrggrg
rrrrbwwwwwubgbugwuwubgurruuuubrbrrbrgbwbgr
ubrgwwgggrwuugbbbbggrbugbwbuwugrugwwwrbbubruwwbwwuw
rurrwugwbugubrbrbrrwwbrgwwbwuwgwwuuuubrruubgggugrggwrgubgrg
rbrgwwrwrubrgwwrwgrrrbuwbbgwggbbrbuguugbrrgruwbubgur
rrwrrgbbruggubrubuugwuwbgwgwrubrrrrbrwgubwgrgu
ggwugbuuguwrgrubrgbgurgrbgbrwbwbwwguwwwruug
rububwugbuuugrwrbrugburgwwgwgwrwguwbgbwgbbbbbgggbbgrg
ggbuuwrwbrgwrbbbwruurwgrbbbwwgrgrrgrgrwgrwbgbubbgggurbgrgurg
ggbwbgbwuwbrgwuggwugrrugbrurgbggrgbuuwruuwwburbuwgwrgrg
gubguwruuwburrbgwgwwuwggbbbgwgwwggrguwwgrg
uwgbbguwrrgruwbrwruwrugrwwggwwuuwrwrgwrbugbgrg
uwwrbwguuurwgrurugurwbrruruurggubggbwuwrrugrg
grgubbgbuguggrbrggrugrgwwwbwrwbuwwwbgwbrrrruuubuwwgrubrugrg
brrruguubbuwwugugrrrgggbrwrgwbbwbbruguwgrwwuwbgbrgbgrg
wbbbwgrrgrbugwwugugrgwbrbgwwuwwurwwrrgrwwuguubrgrg
wrgrwwrwbugububbgrguguubrgbgugwurggbbrgurwgrg
wbruwbuubbwrbrrurwbgbgurrgrgurbuubbbrbbruugrbuwgrg
bggruwgugrwurbwbbbwbrgggwbgguwwbrbwwbggggguwwwgrgubrgrg
rbwuurrwgwbrubgugwrrugurbugwgruuggbwgwurrubgrg
wrwrrwbbgwuruwrubgrrbububrugbrurwrrbbrrgrg
gurrwgrbrrguurbwrurugrwbbubwrwwgbgbrubuurugwrrrbgurgrg
gbgwuggguuguggrrrrwbrwgbrbwwurubuugbwbbbrbwruwbgguu
rugruuubwruurwbwburwuwgbbgggrwwuburuwwbwwbwrwbrgrg
wrwurbrgwrubbgwbubbuubrrwwgurggguuburugbrbwrurrugwgrg
wgwbbrugguurgrwuugbbwbrgrbbrbuwwgbbuwguwwwgruburggbugbwgg
gbrbbrbuurbrwbbuubwbgbrwgwwbuubgggrubrugurbubwgrgbrbugrg
rggruwgubuwruurrbwwgwrgurrbbguguwwgruuurgrrbuugrg
brrgwgrwgwurbgrrgbuwbbrrrwwbrbbbgwugwgrg
bwrgbbrwbwggwrgugruwurgwbgwuwugbwgubgwwgwbubgrrbugggrw
rrrrrwwbbgurrwbgwwbwbbguwuuwgrbbbggbwgrg
wrgugwugwbbwuubrugbggbwwbrggruggrwbgbbbruwuuuwwwbbbbggrg
wbgrgrbuuurrwgubwgrwwwggbbwuubggurbgguuuugrr
wugwrrugwbwbrbuwbrggurgrggrwrwbwubrrwwbwuugugbbgb
guwrwuubbrwggwburbbgrruwbuubggrbubrgbuuwuwguggrg
bgrubrbwwgurbrburrgwgbgwwbwbwwwubgrrrwubgurubwbubrrbwugrwgrg
rgwurrgrrwrbwbwrrwwgbbrgwwugwwwugwbwgwuwuuwuw
bbugwrgwuurugbburugwwuuruwbwurwwbgbbggwurwgbgguruwr
rwgrurgwurbgrbwgbgbbgurggrrrrubgbrbuwwwrgrrrgu
grwgguugbbruwruuwgwrbugrrbwbguurbrwrbgrrruguuwwuurwb
ugguwgwgrrrrrwbwbrrwgubbruruurrrubbbugugwwgrg
rrwbgurruwggbbgrbbgruuguwrggwgwrwgrwwbrwbggrgrg
rbwrubbwrwbwgubwgbrbrrugbwbbwbbbggggggurugrbgbwuwrrbgwbbgrg
brugwgugugbbbbruwbruwuburrrgrwbbbgrwruguggbgwgwrwgurwub
wuwwgrbrguwugwbgrgwggwruwgwbrwgburruwubrbwrgrgrg
rgwgbbgrubgwrbwrruuwgwgguuwgrbugbgbguurgrg
wwggwurgbrwrwrggguwrggurbwwwrgwuwrubgbgbbggrrrgbburw
bwbwbrggbgbbwgrwuwrbwbgrgwrwrbgwrubugwwuwuuwrwbubggrg
gbrbrwbwruwrwurwuuwuuwbwwwggwggbbubgbrruwrrbrwbuwbbbwgrg
wruuwugbbugrbruguugbgwbrbwubguggrubgwurbbggug
gbbwwurbugwwwguuuburuurwrubrrrbburwugbbwgbbgugrruugrugrg
gwguwgubbrugrwwuwbguwbrbbggwgbwbwgbggbrggrg
rbgrgugwubwwwwrbuurbbwbbgugggbbgurgwwbbgrgwurw
brwgrgbbbwbuwruubbrwrbuubbrrggrruwuuwugrwgrg
grrrubrurgwrbbbgrgrrbgbrrrbwrbwguuubgwbrbwbw
gurguuwruwrbbrrrbwwbrbwrgubrubggrwrrggwbugwugubugwugrg
uwwubbggbrwwbgrwgrbrubuwbgugbwwwbbgbuwbwugr
wuurbwwwbrbrubbgwrrrruwrruruguggwubggrgrg
wwubwwgubgwrruwuwgbuubrrgbuwugrgbbrugrwwgruwbwgwbubwuugwg
rubuuwwuburgwururrbbwbbgwggbgrggbuggrwwgruuuwgbrwgwwrug
ubrububrbgrgwbrwrrgwrgrgbuwrwrugwbwgwwuwugrg
ugwgwwwrbbgwgbguugwbwuwruwwrguwwbgrwrrbbwgwggwbgwbwrugubrgrg
rwubwubrgwwrwuwubbrwrwbbrwbbubruwrgrrruwrwwruwwuuugbwrbgrg
rbrguwwgruuuuwbugwbugbbrgurrgugwuwurwbwbubuwrbrubgwbrwurr
bwgrgbrubbrrwggwgwugwrgurguwguwubuwbbugubgrg
rgubgwwgwrrugbgrbrurgrwbrbbggwwrgubrurbrurubggrugugur
bbgrwwrgggrrrrgrbrwubgbbbwuwuwwuuwuurgrgrugwugrwugruwbburb
wgurrurgrbwwuwbwwbgbuwugbgwuwbgwgbwbgrbbwbrgbwgbbrgbub
bgwbuwuubbrbgwbgggbubuwgubuugggbuurwgrggwwrbwwuwwbwgrg
bgwwbrwgwwgrubgrbbggrbggbwbgbgwgrwbwbwuwugugrwww
ubrrbrrwgrubgbbbgrbwbuuwwbburrrwgggrbgbubbrwgrg
bgwrwuubwwwggwrrrurbwgwgguggrgwbggbrrwggbggrg
rrwuwubwurburbgubrbggwwbbbuurwbubgrurgrg
wwbwubbwwbwuggbgbwrwrgbwbrbbugwwuburrugrbb
ggggbwwggrugbrurburrbbwgwbubwgugrrrrbubugrg
gbwgwuugwbrwurwbubuugwuwubbbgbgbuguuuwbbgrgbb
bbwbgrubrwbwbbgrubuwrugbggugrgwurbwubwgwwbrurgbrugrg
wwgrbbbugbbugbuugrruwguguwurbuuuubbbbrrruburubbwgbburbrggrg
wrwggrgwbgrwwgbrgubuuwrrbwgrwbwburbuubrrbug
wwwgurwbuwgwwrbgbwbggrbwrrwgurwgwrwwwuubbb
bwbrgwruuuwwwwwwuugwwbgubuwrbgbwbgwwbubbwwbrugrg
grbugurggurwwbugbguuwbgbububwgurrbwrgggubrrgbgwgguwbbgrg
rwbrggurugbbbggbrbgwbwgbuwrwgbrgrgbubwubgbbuuugugggwugugb
bgwbwbgrubbuubggwrrugrubwgbbrruwrwruwrwuwbgggwbwrrwbwwgrgurg
guguurwuuuwuwrbuuwggbwbgbwuwbuuwubwwwbgugbrb
wurguugrgurwgbuwwgbwrgwrgbgbwgbwurwrbwrbwwr
bwwuwrwuwrrburwggggwwrgruuwguruugwgrburgbburrrburrgb
rwruwruwbwgbbruurgbrbubwrwbggggubugrbrbbwwggggu
ggbuwugugggurwgugrbbbugrwwwuwgbugguuubbugrgbbrbugrg
uguuwbbuwwbuuruwgwrrrrbrwwrbubrbubuuwwbgrg
uurgwbgwrugrrrrgbwubuguwrwwwguwwuuwbbgrg
rrrrbbwugbwbuurggbrwuwbgwruwgwugbbwwgurwgwwu
rwbbbbwggburruurguuubrbubrbruwrbwurguwwwuguguwububw
uuuwbggbbgrubruwgwbuwbwgbwrwwrbwbbggrbuugrg
brubgrgwwrggubwwuugurrbrbbubbrbgwwrbugwgrg
buwbgbgbwbbbwgwgwgwwurgwuwggggwwggggbugwwrbbwwrruwrburrwug
ugrwrrbbruwwbrrbgbrrwbgwggbbruuuwrggbwwrrwrr
bwurbwuggwgwruurrgbbgugrwbguwwgrrrgubwwrwrbbbuur
rurbrggwuwrurbrrgbrwrrbbgbwwgrbbrggwbgurgrg
uugbrbgurgwbwgwugrwurrwwrwgwwbburwbrrugbgubgugwrrrrgw
rwrwgwuwuwwrggbwbrbrbggbrgruguwgwbrwwuwbbwwwwrgr
grrwwwubbgbrrggwbbbuuugugwwrrgrruggwbwugwbwuuwru
ggbrrbrbbrbwburuwbgwuwugrrbrbwwgbwubgrggrwguwrwrrrwggb
uwgugurwwgwbgwuguurwwwgrwbugbrwgrbbubwgbwgbbruugrb
wggbugwrbrwruugwurwwbwggrbggugbgbbwbuwbbbrwggrg
buwrurgguugwrwbbguubuwwgguggbgbrwgrruwwrwgrwwrbrwurubrwgrg
grwrwuwuwbuuwgbwgggugbggwuwrwbgbgrwwugrwwgbbubugwbgrg
gwrurbrrguguurgbwubugguubwbwbuguubugwrugbwbubg
rwuguwbrbwbbwwwurbwrugubbrgrubbbwuwwbbbrurbwggwb
wuwrrwwwbgwgwgbuwuuwugwwgrwuuggrrubrgrgwgwwgrg
wbrrwgwbubrwwrgrrwurubwrbggbrubuubgrguruggwgr
bbggwuugurgrbguuwrgrgwuuburbggrwbwwurruwbbgbuwwwggr
ubwbuuuwurwbubbrrwbrbgbbgbrggbuwrwgwbwrbwwwugburww
uwgwgwggrgbgbgrrburugugubrbrgrwgwrwwrbwbgubbgrrgrbrrgrg
gubruwugbguwgguuwbwgruwbururbbrbrwwbrggwwwbruwgbrg
burwurwbgrwugwubrbbruubwuwgrugbbbggubbuguwuurbrrrrbbg
bgugurbwwgbuwurwwbgbrubgubuwrgugwrgbruubwrrr
ugbwwuuguwbuggguugrgwuruuurgwrgugbrggwbbuuuuuwwrrgwbgrg
bggwgwuubbwbggwubrrwbrwwggwrrgrrbrggrrurwbwbuggrrbwrgrugrg
ubgrwbbgburwrbrgwurgbbbbgurgbrwrbwbgbruruggr
wbguwubgwurwwgbwuwrrbbbbggubbbbgugbubwgbbggrg
wwwgbwuuugwugurbwubgrrggrrububwburuwwguwbbgwuwwwu
brbgruwrurgwwbrwbuwuwuuwrwbwgubbubwgguurggbuubrgug
rgurrbuuurgwuuwuwbbrubgbuubwgwgrrwwbggbrugwuuwuububrb
rbwwrwrrwggubwwubwuurwguuwruugrgrwbrgbuguwwgrg
rguwuwrwruuurbgwgbuwrwgwbbrbwgguugwbrrrwrbwrrr
gbwuburbgwburuwurguubbbubbgwwwwwwggggwgrg
grugwbwbwurgwruurwwbbbgbguuwubwbbubbubuuwguwbwbgrwbrbgrg
brbugurrurgguguguubwbbuugurrubbrugrwbbrurububbbrgwgrg
bbggwbuwgbuuuwbrrwbbbrgbrugbwgwrburbrgurrwgwguwgbrgrg
rrwwwgwrugbgbwrbwbwwwuwuwrwbuwwwrrwuwwgrg
ggbrbrwgubgwrwwgrwurbrruwrbuwwwwwrwbbwgwrwbguggrg
gbugggbugwgwrgrurbbbgwururwuugwwurrrrurbbwgwrrugrg
burgubbgwuwbgwbuwbwwbggggrurrwrgbrrgubwwwrgr
wubbrwbgwgubwbwwbgbggruwbgrbrgggbrbubbwugwubggrg
bggrwwgbuwrggurbwwrruubbbuubbgwrwurrugurgw
rwugwrrbgubgrubguubbbggwrgwbbgrbgrrwbbbuwbbrwgrbbuwg
ggrwwgbuwwgrrbwugbguwbggwrugrbwbrbbwrbrgrgrrbwrbwugwbwg
urbguwguwbwwbuubugrwgbuuubrbrgwbruwubuwrwruwg
gururbbubrbgbguurbbbrbgbgrbbbbuggwwugbgugwbugrg
bgbrurgwwwgrgbgrbrbgubuggbuwburrubrrbrbuwbbrgwgwwrbwuw
rwrgwwugurbuubrwubbbbrbuggugubbggbubrrrrbrrrgbgbbbururrwgrg
grwbbbgguwuwrwwgbbbwgwrbubugbbuwgurgrbwgrrruurbwrgrg
ggwwbubgwwbrgbbgwrbugurwuwwgbubuurburgbrwwruguwgwrubrrrbgrg
bgbguuwwwuuubbuuwwurgbrbrwbruwuuuuurgwwgrg
ggurugrubruwgbggbbwrgrwrbwbwuwrbgwwgwgbbgwwur
rubgrwbbuwbruwrrbubrggrugrbbguwgggrrwruwbbggbuwbbg
wbuuuuuwbggugrugbwrrrgwbgggwgguwubwuwbgwwugrg
rgbubgrwrubwuugburbwwwwwurwubwbgubbgwwgrwuuwr
rgbwuggburwrgbwwguurwbugbuwurrrwgurwggrg
bwbubwuwwgruugwuwbgurbgwgwwgrbrgbuguuwubwubwbugugbgr
bbbuwrurgwbbubwbrrwbrbuurbrrbgrgbbubgbruguruubwgbrrgg
gwbbwguggubwubrbwgburuggrrruwurrubbugwrgrgrg
gbwgurbbgubbbrubbgrgbugugwrbgwrwwurgwbwrrbrrwbrrurwru
wbrbwrggubwbrguuuububwrrbrbgrwwgwgrggwgbgggurugugur
rwbgrbwwwwrwruubbwbgbbwwwbgugrgwwwwbwuruurggwbbgbgrg
rbwbrrwrrwubbrwwrubrrgwbugwbbwgwuwubrugrrbrugruwwrbbrrg
brwwgggwurggbugurwwgwgwgruurrbwugruggrwrbwwgwgggurwwrggrg
rbuwbuwbgbgurruuwrgggubwrwgggbgruuwrrrrrubub
grurrugbruwurguurgurrrbuwwwbrrwrbuuwrwguguwwbbgbgrg
uuwugugggruugbruwgrwwrrbwuuuwgbgruwuwubwbb
rwwwuwwrgurwrggbuuggurbgggrurggurrrwurwwrbwrgwwbgwgurbur
urrburbgrgwrbbwbwggrwwrubugbgwwwuwguwwurwwrgrggwwuwwgbgrg
rbuubrgwbggbggggrbbugwwggrbrwgbgbbbubwwgrwgrg
bwrgbrruubrurwubrgwgrgggwgwgrgbbbrggwwrgrg
rubrbbrrbggurrrbbbwubgurwwgwrrrbugbuuurgbguguggrg
rwbuwwwurbuuubwugwguuubgwruggbgrruwgwgrwrgubwwugrwruu
buuubwggwgwwbrubwwwwrgggbrwwuwgrgbrwrbuwggwuggwr
gbwggrbrbbguwugruggrbbubwuwugwgwuguugbbbwurubguubrruu
rurbrgwbwbwuuwrbuwgrrbwuuwbgubuugwgbuuugrbwrr
bbuggrwrubgrwuwgrwgrrgwgrrruubgrugwbrbbuugb
uuubgrbrgrurwrbbbbrwwurrbugwgugbrwwurwguuubgrg
rwbbrbguwrwwubbrugrwwwrggwbugwuwbrrrrbubbgwrgwurgwu
rwburuggrruurbrrwubgbwbbbrgbguuwrubrggurrwrgwgub
gurgbwbggurrwwugrgbwwrbgrrbgbbrugwgwurrubwbwgwuwwbrrwguggrg
wbbrbwgrbwbrubwbrurrruurrgggbwwurguguubbuguugugbwggwwgrg
rrgbbrwuwbgwuuwbubwugrgbwwrrububrwuggrwgbbg
ubgugrrubuwgwgbrbrruwrrrgrguruuurgwuuwwwwbggugwubwbbwuu
bruugwrwbbwbbwbgbugrbggrurburgwrbbgwugrrguwgugbgru
ggrwuwbgwgugrwurwggburgwbgbrbbbgrrggurgrg
ubwubuuwbrubugbwggwrugrbwurgwbwbwgwrbrwrgwrubw
gwrwurrgwwurrbgwbgruwggwugwguubwbgguugrrrrgug
uubwwubuwbgugurbrgggugrrwrrwwurgrgurruwgggrwbwwgrg
bgugurbbuuugbwgrwbbbrubgggwbuuuuwwugurwuuwbrugbbrurg
brbbbbrrgwubwrwugurbggruuwuurwgrgrrggbugrg
bbruwrwruwuuuggbwruwwbwurgrgwgwrbrbwuuuuggrg
ubrrubruwuwwwrubwuugrgrrrruururubrbuuwbwgggwububwubgbgburr
gbwrgwrgrubrrbubrggwurugggwuwrwrbwubbbrgburgwbubwwrgrg
bgbwrrgwurguwrurgwwwuwbuwwrgbururbubugggwgubuuu
rbrbuwrwrugbburwuuwrwwrbugrbruubbbgwbbwurrgrg
rrgwuggrwbbgwggwuruuguubwrubggwrguurrrwurbuuubwrgwrrgrg
wggrrrrubrgbwwruwwguwwuwubburgrbuuwgwugbrgubwgbwbbgwruwub
ubggbwwgruugwwuwbwguwrrgruburbbwrgwbguwwrruggwbggr
gwrrrwgburrguwbbubwggwbwbgrguwrurubgggwuwwbrbbrrb
bgwgububrgwrugbuwwubuguubwbbuwbgbbgrwwbgwwbuugwrugwbbgwu
rrgrrrgugbubrbuwwrubuwwbbwgwugrbggwgwwgbubgbugrurbbgrbugrg
rbbrrwubbbwuggbuwrbwwbuuuwrbubrbrgwwuwuwwuugwrbrrgwubugrg
bbgwuggrwgubwwgbuguggbwgrgwrgwgrrrwrbuuggwrgu
uwbguugwwbgwwrurwwuuuwuuubuuuwgwwwwrggwwwgburrugwuw
bubgwuggwuguubrugbggrbrwgwggwbruubggbrwuuwurgrg
rbwurbbuguubbwrugrubwggguuugrugwrgrbgwwgubbgrg
rrgrgrwbwgwgbgwrwwbrgbrubbwbbggurgwruwbggubrurwrbwrurgrg
wrburguguwubuguguruwrbrrugbbgbwrgbgbgbuurwugbgbrgrg
ggbururuggrwurrwbwgrbgrugugbrwgrurgrbrwwuuwwrrruwwbwgbgru
rbwwbwgwggwugburgbgwgubwguurgbruurrgbuwbbg
wrgwrbugbrggbuwgrgrruugwgurgbwrbwggrbbbgubwrbugbgwubbgrr
ugwgwwubwrrbuurbrbrrrrrwbubgwrrggrbggbrbbgrbugrg
guuwbbwubbwbubgwuggbgrubwwruuwbbggbwwgrg
guuuubwwuuwggwuubwbrurrggwrwwbwuuwuggbgrbugbwggruwwgrg
rbuuugbgbgugggwgruwrbwubwbbubugrbwguggbwubrwrbr
uwgrbgwwbgbrubrgrwuburgwugrwrrgbbwbbbgurwwug
rwwwrggwgwrwgwwbbuwbuubbrubuubwbwrrrrubruurrbwgrg
wbbwrwgwrubgggwbguwgurbwurubggwwururbrgrg
wrwwwbbubwuugbwwuugbrbwbbbwubugwbwbwbuubwgwbwguuggrgubwbg
bubgbrgurbwgrbwbwuwugurbrwgbbwgwwbbgwgbbubbg
uwbburuuwggbgrwggwruwbbrbrgurbwgbgubwuguwbbwbwurwurbububg
uuuugwbwbwburuuuwbgwuwbwrrwbbgrrrwwrrgrg
rwgguuwgggbrgugwbggrbggwrgwggrrbbwgubguwbbrbbwwrrgrgb
wgbrwrrggbgugrwwuwruwbrguwrrwuwbwubbrbgrg
ggbbubbwrwbbrrgguugrbwuwrubguurrruwuwgrg
wwrrbgggwurwurbgubgurrbrbbwgbrrggugwbbrwwruwgw
ruguwbgbbrbrwwugbwrwrgbururuwrrwgurgwwwrggrg
grbuggwrburrrbggugbrbwgbgguwggubruwgrrbubbb
bbwuwguuwuurrggggwwwgubugubgbrrwbrwgruuwbg
bguubwuuuuguurbrurbwgbrrbgggrwrwrwugbbwgubgubbgrur
wrrgbwwrwbrubbgrurbwbwbubuuugurwgbbwwbrrwrwwurggurruubbbub
bwggbugrgbbbuwwrwgguwrgbwwuurrrbgrwwgwwwgrg
wgbgwrbrwbrwgwwwwwwwgrrrgwgbbwrwbwgrwbrwbbwbbwggrg
uggubwwbbwgwbgrubbgwgggwubbbwrbgugrgubbbrbburbbgrg
brurugwbbwgbrgbrrbgguuguwgbgrwrgggbggrurrbbbbubbruwrurbbbg
grgururbbubrgugbrwbwwbwgbuggbgrgrwwgbwgrg
burwruruwgrbuwugbgbgbwbugguwgwruwwbburuubwwgbbuubggrg
uggugrwgbwbgwgrrgrbwggbgruuwrurgwgwrwgbururbgwbrwb
bwubuubrbuuruwubbgbwrgwrwwbwrrbrrbrwurgwbrbwgubrwbuw
gwuguurwuubuwgbbwububrburbwrbuwrrugwurgbwugwuggrbb
wwwrurbgwgwbbubbubgwgbbuwwwwbbgugrwgwruubbrurrwrugrwwgrgrrg
gwrgwrgbgubbrbuwbugbguuurwgruurgrubbrbgwgruru
bbwwgwrurgbugbgubwbuwbwrwrrggwwgugwrgwgrguwwgrbuuuggwu
bugruwwubbbbguggggbrruwbwrrggguugrrgbgrgwwwrgwwuuuurgrg
uwgbbbuugwgggrbuugwggbgbbbrgggbbbbgbwwbuwggbwwubwrr
uwgrbwrurguurbwuruuwbuwrgwwwgrrurwurruruuggbgrg
gbbgubuwwgwubwrbrrwrwgwurgwbrrbrbrbggbbrguwguubbggrg
ggbgrggrbugrrrugrguwbwgwbwwrrgugurbrrbgrbbwwguurrgbubgrg
wrwwbururbbwwrgbggrubgugrbuugrugubbbguwgrg
guwrbrwwuwgruwrwburrrgrgrbrbggbbrggurubrgggubbbb
guubbwwrbwgwurrrbwbwrwuwugbgrwrbrubugbugrgrrwruug
wuwggburbgwrwuggbwbgbwubuwrgwwbrbgurubruuburgrg
ubguwgrgwggbugrggggruwguruwgbgubrrbggurwru
ubgbuwgggwggbgururbbburbwuwwbbbwuggggggguw
bgggbwwugwuwbggbugugwrurgurbuubwggbggggbuurubrrbggwwgrrwgrg
uggwgrurrgrggugbbruwrurwrwbrwrbrgguugurubrwbrgrrwwggrg
bgwubgrbugwurrubrwuwuguruwwubwgrgrgbbgruubwgwbgrg
wuuuwugwgrwgwgbugbuggggugbgbwuubbuwwwgrwwbwuurg
brbwuruwrgugbubgrgrrwguuurwurwubwwugbrbruwgrbuggwbwuwrw
guwwwrbwbgbuurwwgubgwwbwgbrbwuwgrgrbrwurgugruwggrg
ggwwwruuwwguwwruubgwuggbrwgugurgrugbwubgrbbbwbubwwwggrwgb
bguggbbbrgwbgwbwwrgbwurgbgugwurbuurggwguwuwurbubugbgrg
rrbbbrbburrbrubggbbrbgwrgwbgrgrrrbrbbbguwrrurrwburrb
gbwbrbwubbuggugbrgbbugggrbrwrgbuuuwuguuugg
wggrbbgbrrbuguggbgwgrgbuubbgwwbrugwbgrbbggrgwrw
uurwguuugwgbbrguugbgbburrwugburugbgrwwgrwwrguwbbruuugurgrg
wuuwuuwbwwggbwwugbrbgbgruwbbuurrbwrburbwwuggggugbrrrwruuur
gbuwwwruruguwgurwbbbwuwwubbuwugubbwgruwrurgwgburguwburb
grubugwbrbbgubwbruwrbwwwbggubrgbubrbgbbwbgrubgrgbg
brbwurwwrwgwurggugubruububrrgbgbuwbuubwbbwugrg
uwuuburgguggrrrgwbguwrguuugwbwbrruuggruguwuwrwbbgbrwuggrg
uurrrwuwurbrwrwwbubrgrrbuuwurwuwwgrbbgwgruubgrubrwbgw
rwwbruwubgbrwgugrggurbguubwubwbuburrbwrgbu
gwrgbrwgrrugbrbbugbgbubrbrwbwbrubbbguwbwrggrg
gwrbwguwuwrugwrggwgrwwrbuwbrbgwbwbrgubrrwrrrbrrggrwbgwbgrg
wrubbggrrwgwwburubuwubrgrbbruggggbggwwbwrrggggrubbugrg
brugubuwwbrubrgrwrbgwbggurbbwurgbbuwwrwwgg
bgwuurgwgbgwuwbgbgububbgwgbgwgrwbwgubbrgbwuwwgbbguuguwrwwr
rbbggggbgrwgwrwbrrgwgbrgbwggbubrwurwbbbbwrbbwgrg
wuuwurbwuwbgubbbwbguurrrbbuwurrgruwuguguwggbbwgrrggrwbbu
wwbbwwruuuggrbugggburgbwrbwburuggbrguuwbbbug
burrruburbuggrbuuwwguggwwugwbuwuuwuguwbbbggbrguur
wbbwggbwuwwwbbuwgrwrgggbrubgrwrgggrrwgbugwbrbrwguwubgbgrg
ruwubuwrbuwwrwbugbwrbbwbbruubuwbrugbgruwgwbururrugrg
wwwwrbwbgbuugrwwububgguwwbrrgrbubgwbwwrbugrrb
ruurbuurrgugwrurwuuwbwwgwrwugwbrbrrgbgubwrgguuwgrg
grwrurubwrbuwbbwguruggrrgwuurgwbrburbrrgwwb
gbrwbbuwbwwguwgbuururuwrwrgwbwuruwggbwuurwggbgubwugrggggrr
uwruuwwwrgrrrguuggwbbgbgrggwwuugrgrgbugbwbwuubgbbru
wrwubgubugubgrrrwrgbrgwbgrbwbwubgbuuwruwrrbwugrwrwbgbrgwbr
ubwwwwuubwwwwbwubgwwbrgbuurrbgbgbrugurbrugrgbrr
grwubrbwguubrgwuburbgbgrrugurwrgrwwururrwgwbuw
bbwbgwrgbbwrwrububuwugrbgrrwuwgbrbgwbuwruwwruuuubbbrrurrgrg
uwrrbrgbrrbwbbubbwbwgbwbbbggwugguuwwrbwruurrbgrrwgubgrg
grrrwwrwwubrrubbrguwugwgbrbgubgrgwbggwwrurrubggrggwwrwrb
bwrgwbrurgbruwgbbbuuguuwggurbbwguuurwgbbubuwruu
ggbwgurwwubgrbruwrrgbbwbuwurwgguwgrrwwugruwwuuguugurgrg
gugurgwurrwbruugubruwrbbrgrwrwgrrbbggbbggwbwrw
ugbubrbguuuwwrggrgwugbgrugrgbwrwwwrbruugrgrrg
guwwuuburwgrgrbggrggbrruwrbggugwbbrbrgbwwwugrg
ruwgwgrwrwwrbubrgrgggbbggggrrggurggbubugurrrgbgbrugww
bbbuwwwbrwguwrwbwgwgwrgwgrurrbwrggwwuguwrurrugurrgbrruurb
rwbuuwbggrrbuwggwgurbuwrwwwguugwbuurbgwurru
rwrwrgwuwburrwbbwbbbgubguwugrwbwwuuwbgbubrrbgg
gubrgbwbgbrbgrggbuwbrgbwbbwbrwbwuggrrgrg
bgwwrwubbgrbwgrwbgbubgbwgrbwggrubwrrwwubwubuu
gugrrgwgrgrggurubrgruwuwubububgwbwbrbrrrwrgbbwbggwwbbwgwu
grbwrwbuwruwrbwrbwububrrubgbguggbwgbrwgrbbwbbgrg
wbubgrubugwruwbbgrbrwbuubgwubgrbuugurbgwwrgbrggrbw
urbwgwuubrgubwurugubgwgbbwbrbbbrwgrgbubbwgbbwwbgurgrg
ggwrwwrwbbrgugwuuguburrburgrbrgbrwwwwrgwuggrgrrg
uubgwrubruurwbugwrrrwwwurbgwgbrugbwrrguburbwburrbbbg
gbggbgrugurburwbbrbgubbgugbrrrgwuuwbwrgwbguwgbg
uggwwrgggwwwrruwuuwrbuuugrbwugbrgruuuuwugrg
rrgbwuwgggrgbgbgrggruwbbgwuwggbgwbggbrbuurbrwu
rwuggugrwrgrggbrgbgruwuwgrgwrurruwwrwrwgrrurggurbbrrwubb
rubbrurrwgguwurggwbbbgbrrubwrwgrggrbgrugbgbw
wrwuurbgrrbrrbbrgggurubrgguruwgubgrurgrg
urwgururbwgrgbrbgggruuwgrbrbrgwwgubbwbrrrgwgggrwubbrwrubbgrg
grguuwggrwrrrwbbrggwbrrubbgwubbbuwuurwrbwbwrbgrbuwbubgbbgg
buuurgwurrbwwruwwurruwrrgurwwugggrggubbwugbrbbbrrwurubugb
grbgruwuwuwwgruuwrwuubwrbbrgbrubbrgruubwrrggrg
brugwwbwurruwgrbrurbruwgwbrwwgrwugwwrwwurbugwburbbbbbwurw
brugugwguruwbwugugurwwwwrrwbubgbrbbwwgrurgugwgwwbgbrrrruru
wgwggbbrugrububgggubbburwbgbgrurwwguggrwrgwu
wbburuuuwbrgggubugruwurgrwugwuuruuwubgguggrwrubg
uugwurguugrbrrgrgurrgggwrggwwgrburgrbbwrwggbrurgruuuwbwgrg
bbggubrubrguguggruuburwgbgwrgbbbugrruguuwurrgwggwrrur
bburbggwrgruubwwrwwgwrrbrwruurbbrwubgurwgrg
rrwbgbgbwuuugrgggrbwgwgwbggrggugburrbrrrbruwgurbgrg
brrwbrbugubwuubrubwrwubbbbuwwbrwwuwuwrggwr
rgwwrbubuwugurwgugwwbgrgurggwwgrburwbggrgub
brguuugwwguggrbbruwwwrgrbrrurbwuwwgrbbbrrrbbuwuggg
gwwburrburrguguwrggbugwruurbbwguruwbguuugbwbrrgg
gggubrrgwgwggggugbbrrrggruwgrwrgruwgbrurrggrwbgububruuwwrgrg
wrbrwwbrbrgbrrwrwwrgwrruwugrwgruguwubruwbrrburbwgbgr
rgwbrbrbwgbrwrrwrrugwgbrugbrbuwgwbrwbggubrgrg
ggbrrgurgurwguubrbgruwgrurwbwubguuruurrwgruguguwgrg
rrbugburbbrggwgbrwugubrwubgbrubbrrwubbrwbgbguwrbubuwuuguw
ruwuwgbwbgrgubrwrggrwwuuuwbbrruwrrbuuugrg
gugwgwurrbwuwwrwwwurbrruwbrbuugwrubrbbuuubwrgrrwbgbrwbg
rrbgbgbwwbwuwwrbwrugbrurwubruwwgwbwbwbwurgrg
gwurgwugwbrguwwugrrbrwbwwrbuuwbuwguurrburggugwggbbguuuuu
ubwggubwbggrrwgurbrbubruwguubbbbggwwbbwbbwrubuggrg
urggwrburbbgwubwugbruwguwggbbrwgbugwbwwuruwwwgrg
bbgwuwuuwwrwuwwgbgugwwwgurgwrwubrgugrrrgwuuwruwuubrwrbrr
grgwrgubburwwwrwwugbgrgwurruwrrrrwuruurbrrbgbbbgwrrwgrg
bbbggrggrbwbgrbrgubwwggugrwgrbrrubburbrugbgugwgwur
wugrgubwrrurgrgwbgwbwuubgwgbbwuwugbwgbwugrgguuwwgrg
uwwbguguggbbbrwrwbguurrgbrwwuwwruwurwbrbrwguuurugrgrg
brwuwbwwugrbbbubbwbbubbrgrwggbbbgbgggbuburbwggwuugrg
gwrbgrrbbuwwuugwggubwbuwuwbgggbrrwrubwbubgbgbgwggrg
grbbbwwwggugbrbwwggwwrrwwugrurwgugbuwuuugrbwb
urugguuguwgbwurwbwrrurbuwgwgrbwurbbgrbbrgrwbuwwburbbgruwr
bgrugbwwuggrrwgrbbrgrggubrwwuuuurggrrgurggbbr
bruuwbruurwugwubbguwurbububgrgrrwugburrwurgb
wwuwgbbuuubwwguwwugrrwbgrwguggugguuwbgubgrwu
grbgrgbuwgbuwburwrurubrguwrrbbgwuuwgruurburwwwubbrrurgwbgrg