summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornekineki <nekineki@nekineki.net>2024-12-24 11:15:39 +0100
committernekineki <nekineki@nekineki.net>2024-12-24 11:15:39 +0100
commitf0da254e599ce80a05a476ce8429223e69202843 (patch)
treeb76a502971d0f3c9ef2d64bf915e94207ceaaca0
parent4c8c5406d4d4e0e637e642f7770e011510e09e47 (diff)
day19 part1
-rw-r--r--2024/day19.rs90
-rw-r--r--2024/in/day19.pzl402
-rw-r--r--2024/in/day19.ref10
3 files changed, 502 insertions, 0 deletions
diff --git a/2024/day19.rs b/2024/day19.rs
new file mode 100644
index 0000000..5060dff
--- /dev/null
+++ b/2024/day19.rs
@@ -0,0 +1,90 @@
+#![allow(dead_code)]
+#![allow(unused_variables)]
+#![allow(unused_mut)]
+use std::collections::HashSet;
+use std::env;
+use std::fs::File;
+use std::io::Read;
+
+fn dfs(design: &str, tokens: &Vec<&str>) -> i64 {
+ if design.len() == 0 {
+ return 1;
+ }
+
+ for t in tokens {
+ if design.starts_with(t) {
+ let ret = dfs(&design[t.len()..], tokens);
+ if ret == 1 {
+ return 1;
+ }
+ }
+ }
+ return 0;
+}
+
+//fn bfs(design: &str, tokens: &Vec<&str>) -> i64 {
+// let mut hs_new: HashSet<(i64, &str)> = HashSet::new();
+// hs_new.insert((1,design));
+//
+// let mut ret = 0;
+// loop {
+// let mut hs = hs_new.clone();
+// hs_new.clear();
+//
+// for (n,d) in hs.clone() {
+// for t in tokens {
+// if &d == t {
+// ret += 1;
+// } else if d.starts_with(t) {
+// hs_new.insert((n+1,&d[t.len()..]));
+// }
+// }
+// }
+//
+// println!("{:?}", hs);
+// if hs_new.len() == 0 {
+// return ret;
+// }
+// }
+//}
+
+fn main() {
+ let args: Vec<String> = env::args().collect();
+ let filename = if args.len() == 1 {
+ "in/".to_owned() + args[0].split('/').last().unwrap() + ".pzl"
+ } else {
+ args[1].clone()
+ };
+ let mut f = File::open(filename).expect("cannot open file");
+ let mut content = String::new();
+ f.read_to_string(&mut content).expect("cannot read file");
+ let (para1, para2) = content.trim_end().split_once("\n\n").unwrap();
+
+ let mut tokens: Vec<&str> = Vec::new();
+ for s in para1.split(", ") {
+ tokens.push(s);
+ }
+
+ let mut designs: Vec<&str> = Vec::new();
+ for s in para2.split("\n") {
+ designs.push(s);
+ }
+ //println!("{:?}", tokens);
+ //println!("{:?}", designs);
+
+ let mut res1 = 0;
+ let mut res2 = 0;
+ for d in designs {
+ res1 += dfs(d, &tokens);
+ //println!("{}", d);
+ //let ret = bfs(d, &tokens);
+ //res2 += ret;
+ //println!("{}", ret);
+ }
+
+
+ println!("res1: {}", res1);
+ println!("res2: {}", res2);
+ //assert_eq!(res1, 240);
+ //assert_eq!(res2, );
+}
diff --git a/2024/in/day19.pzl b/2024/in/day19.pzl
new file mode 100644
index 0000000..22db286
--- /dev/null
+++ b/2024/in/day19.pzl
@@ -0,0 +1,402 @@
+grrg, buwuurr, w, bguwu, uuuu, wr, wuw, brbug, buwrg, wwr, uwr, buu, gurw, ubrgg, wggww, urgbr, wur, urur, wguw, buurb, ugbrwwb, gbr, gb, wurww, wgruw, rrwgbur, wrg, wru, urr, wwbgru, bb, rrr, gwurbgb, bgguur, rurru, rwggru, uwbuwbr, rwww, grbbrr, uuw, ubgwu, rwrrr, rwgrbu, rbu, ub, buubgrr, ruu, rggwgr, bgwgwu, wuwgbg, bgugg, bbb, gbwur, buwrubb, uwgr, grrggug, brgu, ubg, ggur, uuwr, gbuu, bwwgrb, wbu, bbrbb, ubbrr, rrwrggb, urbu, ubrb, grb, brww, uuu, uuwg, bbwr, wwgg, buwubg, gwuuru, bguugrwu, rwwugr, rwru, rwwwwg, bgug, urru, bwuug, bugrr, wggr, buw, gub, gwgrgg, brugwg, wug, grbrw, bgbbb, ubwrg, rubr, grrubug, rubuugwr, gbgw, rwgwgg, ubw, bwbwwrb, brbwg, gbgg, rgwrur, guwg, grg, rwwubg, ugu, urbwrg, urg, gugbwbr, gwg, gbg, rruwug, wuwwug, gwgbg, wuuubu, rwuwbb, urrwur, rrgbubw, rub, rgr, uuuww, wrgu, ggg, brwb, rgrwg, bwr, ugwggwb, wggbguw, rwwgb, ubr, gbwg, rubug, bwg, bru, uwu, wbwggbr, ggu, guuub, uur, bww, ruguwgg, wbwrb, brwg, rrw, r, wgrb, ggrb, uwb, uuugbbr, brubb, bggb, urwubrgg, bgbw, rbgrrrgg, ubbg, rww, uuruggrw, rugw, uug, bgbgr, uwrb, wg, gubr, wbb, gwr, wwrw, wu, wwrgu, ugrrgu, bbguu, uwwwg, rrg, uuuwgu, grbbuwg, gguu, gugg, gurg, bgg, bug, ugb, rwr, wgbbg, gwgwuu, wuwbbbw, wgbr, wuggur, gwgr, bbuubuww, uub, br, bggwu, brg, rbg, rwb, brwwwg, ruwrg, wbr, ubwwww, gbww, rbww, rwuwbu, wbuburw, rrgg, uugbub, urrbb, wwgrb, wrub, guu, rgugb, wrubu, rbwgwg, gbgwubr, uwbrbu, wuru, rbbgu, wwg, rbguugr, brb, wbgbrr, guw, rguw, rbrgub, bgu, gurrrg, ggrbg, guwr, bwbb, wbgg, ugggb, rrrbggb, rurg, gug, rwg, urrrb, wbubg, wrbbubw, bwgu, bwurw, urrg, gbw, rrbr, rbrg, brwbww, rbgb, uurb, bwwgwgrg, wrwbuu, bwbgw, rug, ww, grr, rg, rbwbrbrr, rgrg, wwb, rurr, ubwu, rgu, www, gbb, bbw, rbw, gbgbwbw, ur, gguwuggr, gru, uru, rbuw, rrbgr, wuu, wgg, bg, wbuu, rwbggb, uggbg, gbu, bbgruuuw, rb, rggb, ubbuub, ruwubgbr, bub, guuru, ugg, uuggbuw, rbuur, gbrw, gu, wbuugwr, ubb, urbuuwu, wrgub, rwu, uuww, wgwgbg, uww, rwwb, rbbubggg, bgb, rrwuwwg, ubugw, brw, gww, bgr, rbur, rr, buwg, wub, wbwwuu, wuruuwr, wbur, rgbwu, rbgwurg, uwg, uwrrg, bruuw, rgg, gubu, bbbubbb, bgrw, urb, wgw, rrgwu, wubbgr, bbr, bwuwu, rbbu, rrb, wuuwggww, ubwg, uwgub, bgubgru, rwubu, wuwgbgg, ggb, g, bbrwrgwu, wbg, wwru, rbwugr, urwwuu, wwwgug, gbur, bbggw, gwbrru, wrbr, ggr, ubu, gbwugw, u, grur, rgub, bggr, bwrw, wurb, ggggw, gwurrwrw, bgrubw, wgr, rrbrrwb, urwbubgr, grw, rgw, bbrbr, urbrr, brrbruuu, uwbbw, rur, ggw, ruw, uu, ubrw, rurgb, gbrr, gwwbu, ugr, brwubuub, bwb, wuugr, wrrub, uugrbr, bgwr, gwu, gwbw, wbru, gwb, rgrwur, wrwur, bw, bbu, wwu, uwwb, gbbb, grrb, uwuwbwrw, gur, rgbbu, gbwbgg, bbrur, gw, ru, guwwbr, wgubb, ggug, ugw, wwgwugg, wgrw, grrw, uuggb, rwbgbr, wrb, wbw, bbg, rw, uwgbgu, bwgw, gr, rgwb, rbr, rugubb, gwuggbb, ruww, bwu, rwuggr, bubrb, rbbub, uggr, brwugur, wgu, bbwb, gbwbu, rwbubu, ug, wb, rrruu, bwbbrb, rbb, uwwgu, bgw, rwwr, urw, wgb, gg, bruwrbr, uugwgbgu, rru
+
+burwurwrwgwbrbggruuuwwwuwuurgubwwguburrgbwgwbw
+wgbgguwrrwrgwurrwrwrburrugrwgubruugbwgbruubuugrwwwrbw
+buruggbwgrbwbrbrrrururbwrbburwuwwbrubrbgwgurrguggruubururr
+wgwbwuuuwrwrrwbrbgugwbuwuubrurrgbbbgrurwuuwgbuwburbbgbg
+uwwwurgwrwbguurgggrgbrwbwurrrwgbuwbuwrrrwwggwuwggggr
+urgwguwgbrbbwwubwbguuwbrbugwrbwbrrrbgrgrubrwubb
+gruuwrrgwbwubugburwwguugbuubwbbwurbwgggbgwruwwg
+ggbgbubwggwuuuwgggguwuggrgwuggurrbwuuwgbuurgbwwbbwrggwgg
+bwrbubguruubbrgbrwwbgggrrrubbuururrgbguugrurgrwguuwggbww
+burrguubuwwgurbbggrrrgbuwrwbwwubbbgbgugbwbu
+bwbbbgwgurgwgbbwwggbwbwrrwbwuuugugguuwrwwgwbruuwubw
+uwbbwrbwwuwguwubbrgrbbugwrwuwuggggrwgbuwurbuuuwbbuuwbrb
+burrrurwbrwgrguuurbbgwgbugwwuwrrgugrbwrwuwbbwwgruurrub
+guwubuurbruuwbbuburrrgubbrbwbgggbrrbgbrubgbrgwwbr
+burrruguugbgurgbrruubgwgwrbbgruwwbbrwrwbgwbw
+burgruwrgwwrubugwbwgrugggwuurwgbgguguwbubwrgw
+burgbrbuugbwwbbrgbgwrgrgrwwwrurbbgwbggwggurrbb
+burgurubbuuruubbwgbbbruwuugbgbrggrbugbugbwrrgbrwbwbgrbugru
+rgwuurgbubbuwrggwbbrwrgggrggrgwgugwwwuugug
+burwurgguugubgbruugbrrwrugbwrrgguwrrwburgggbwbggwgugu
+buuburuwuuuuguugbbwrbwbbbbbwgwruwrguugugwgubruburwbr
+wwurggwbgwrrrbururuwggguwruwwrwbgubgwbrwbb
+wwgbwwgrwbugbgwbrwwubwrbgwwbbrrwugrururbwrrw
+grwwbgrrrubgbbuwgrburbgwbbwbubbwruurubuugg
+rrwrbbubrrubuwggwbwgwwwbgugwbgbuuwwguurbgbbbggbbr
+wuwbbwggwrbwrrwrbwbwbrbbggggbwgrbbgurwwbbruru
+buruwwwbggwrwwrwrrwbrwuugggwgbwgbggugbggbruugrr
+rbwuuwbwrurbbuwruuwuuuuwwbbugburugwbubrwgurwg
+burgrgrrgwgbbuwgrbrgwbwgwrwubwwwgugwwrrwuurbugwwub
+grwggggggwbuwurruwgbbwrguuwbrrrgrwrwgrgrwggwwbwwuubgrrgbb
+uwurrwrwrbuuuurubwwguwwgbrwwugbuugrgwurbrgbugrruwwburr
+wgwbwwrwbwurwwrggurgggrwggrurbggbwrwrgwbubuwbbwwub
+burwubwugrguwggbgwgbuubguwgrgwbbwrbrubggrurwbuugub
+bururwbubgrrubbbwubrwwgwruwgruwurguguwurrrburrurbguu
+rrbwwuguwgrrgrubggwrrgwbwbrubgruwgrrbwbrbbrguuwrgbwrwurwrb
+burbwggbgbwrruwrgrrgwgguwugwgrrrggruwbuuwurbwwwgrww
+wwgwurwuwbgguubbbgurwburgubgbwwubwrbugubwgwggwwgrwwu
+bruwbgubwbbwrrbggrrrrbguwggwwbggugbwrwwrwbbbbwuruuuuubg
+rrurgrrrwbgbubbgbugbgggwwwrggbgubgrwbwgbguugrb
+gwggrbwrbgwrwgbugbgwrbwbrbrrugbggbbggguguuwbbbwwwgug
+burgrbrurwwggrgbgrrgwurbgruurwbbgwbguwrgrwrwb
+bbwbwuwggwwbrugwurbruruguubwrwgggwgrbbuwgggrbbbu
+rgrgugbuugbwrwbwwbururuwwgubbgburuwrrwrrwbb
+gurbgrruwwrwwbgwugrwubrbgugwgugrrbbbwwbwwurgu
+burwuuguggwbwrbuuuwbwuwgbbrgbwwrgbbubgrgbrurg
+rbrrrgwwugruuburrwbggggbwrbubggrggugbbuwrwu
+bbrrbwwurbgrgrwwrgwbrugggruuubbggruwwurrwuwbwbbwwwwggrgg
+wguuuwgwwgbggbgubwbuwrbrrurubrgrrburruwbrgrwubgbuuburbw
+uuburburbwururruwbugbwgrgrwgrugwgwgrgwwurbrr
+burgbgggubwgubbgrwwwgwwrwbrwgwrwwrgrwrrwguwugggbgguwb
+bwwuuurbbwwwgbbwgubgbbbbuubuwwgrgrurbwwbrbgruuwbbbwrgbrr
+gubggwrbuubrgwurguwbbgwubrrruruurrbubrbwwuuwuwrbuw
+ubwwuwrwgrgrgwrugurrbwggubuguggggbggggwbrrgguuguubguurwrbg
+buruuuwuubbggubuguwggguuubbgrgrrurwubrrwbwugwrrwrbw
+urgguubbrgguugbrrwrrbrwwuwwuwgurwuwbbwwbwwbrrurbburbrb
+burururbwbrurbwurbgrrrgguuuguuwwgggwuuwbwuubwbwbrugggwb
+burwrwgruuugugugbwgurwubugbwrbburrgruggbwugggbrrwrguggr
+wbubwuurugruwruuwbbbgbgwrbuwugbugrrgrburbbubbbubbrug
+wgwbuggubguuugguwbwbuurwbgrrgrurwbbwwgubrwwwrrgubg
+uubruwuuguwwbgbgwurwurwugbwwwbuuguggwggbggwbbwgbwr
+gbbgwbwgwrburwwwguguuwwrbwrbwuwgggbuguwugbwwrrrgw
+uuwwbwwwbwbrbuburbugbwugrrguwgrgwgwrbuugbguuwbrrubwurrugr
+wurwuuwbuuubbbwbbuwrgwuwrggurwrrgubgrgbugbruwggbwwubrww
+bggruuuwbbbuggguwrgrrrggwbrrgwbwugubwurgbgrbrbubbuu
+burbgwrbwbwurwwgbgwuwrrwgwgburgbwrurbrgugugg
+uuwgbwgbwrgbbugwrrwwwguwrwrurwurwugbuuwugr
+rggruwwrugurwgugwguwgrrwurrbgbwwwgubgubwuwg
+buruuwrubrurrbwgrrwgwguuwrwrgggbuuuuuwwuuwuggwgrrwbgubgrwbw
+burgwruwwgwrgwubbgrwrgbgwwbgrugbwrrrbrwbbguugwgbguu
+gwrrwrwwrrbuwwuwbguwurwwgbgrwbrwrwwbugrwuuubuw
+wuggrrrggrgwubbwrwgbrbwgbgwuwwurguwruubbwurrrwrgurb
+burubruurbrbgrwuwwugrwuuwwgurugbrwwbrwrgrb
+burggbubrrrruggwbgbwubuuwurgrbguwubggwrwbgwugrruwguw
+wbwgwuwrbgwrbrwgggwgrbgguwwgururrbuguuubwuurggrbwbrbwbuw
+burubwrwguguurbbgbuugurgubburubwwwggrgwwrubrwuuuubgu
+bbbrwrgwuwruuwrwgrgrwrubggugwwbbwuuubbgbgwrbu
+rruggbgwwugbrgrguwuwbrrbruuuuuubrguwwbbwbwb
+bwbgrburwrrwgubgwubwuwuwrgrbwgwuuuuuwrgbuw
+burruwubuuruggrwrgrwgburbwubburburrurrgbbwu
+burururwuuwrbrggwgguubwgrbrurrrggbrubgwwugrbugg
+gwugrgugwwggbgwrgrwgrrwbuguggrgbrgbburgugrbrbw
+bwrrubuuwubrwgruguwwuwruguwurrugbrgurgurrbbwuwwwwruu
+burwwggubbwurrgruugggububbrgwbrrrruubbbbwgu
+gbgbwbrgrgrrrgwrbwrubbrgwguguurrbbrbuugrrggrwggbwrgu
+wwrwubburruwurugbggrbwwubruruuwbuurbgwwurbwgwuurrgr
+wgubrrrbrubrbgwrwbuuwwbgwruwwruurbbwrrwgwruubw
+gbugbrwgbbrbgruuuubbggrgwbubrbugbbrbuurbugrww
+rwwggugguuguurubwgrwrgrbrrurbwuurwrbbbwrbwgrruwguggbgrb
+bwrrgwbbwrggrgurrwbwbubgbugwbwwgugwgwbuggbwrw
+rwwggwrrubwuurgwgbwwurubgwggwbuubwwguuubuu
+rggbgbbgrburrggbuwruwbwbbbgwgubuwuubgbbuuurrwrbwbrrwbu
+wwgrwrurwuwgggggbwbbrrgrrrggbgubgwwwwubbwrgwgugg
+ubgrgububburrgbrrwwururwwggwrwrbwgwgurgbwbgggrgwbwrrrbubgr
+ggbbgwbrwuguwrgbwwuwgugbrbbwgubwwuwbwgrggwrurwbwwubwrb
+ubwwwrwrugrrgbbugrbwbbrgwrurbrugwwwubwggrbbrrbgbrrgrww
+ggguurrrwrruwrwrrwwuuwbbubuwwurgrrwggbwbburguwrgbwr
+burwwwbubruwbwrbgrwwrgbrruuguwubwrggwwbwwwruuug
+rwubrurbubgwwwwbuwbggbgwuubwbwwrrruwbrrrbwr
+rwruwwwuwwbwrbbbuwrrwurgurggwgrgubbrrwgurguwbgbbbwuwugurwu
+brwbuuwrrbgrwbrrrbwbwbrbrugugrrrgbwruwrubggr
+wurrbbgruuwugrwbgrbwgggbbruuuruuubrggubrbrbgwbrrwggg
+wwuubrwrrrrrrbwrrbbrgwuuwbbbgurguruguuggwurbggwwbr
+burggubgugbwwbgwwgubgbrruwwruuruuuwwubgrwwrgr
+bbbuwrrrurbuwwuurbbububbbrrwwuwgggrrubrrwwrbgg
+guububuwuubwwwwbuwwbgwwuwggbbburruguwgwgbu
+burbubbgguwrwrruuwrbruurbbugwwwuwuugwguwruggggggwwbwwgrg
+burrrbbgrbbbwwwrburbrwubuubbuuurggurgwggruwgbrbrrbugrrbugu
+bruubgwrrwwubrwugrgbubbrubggbbrurubggruggbgggw
+burrrrugwggwwwguugrbrbgwrugugwugwuurgbwgruggwbwwrg
+burggruuwgburrbwwgwgugurbrwgbugwubuwwburwbwggugguguwbuwub
+burwugubwrubgubwwuwuuwbbwwwugguugwwwrwuurrgugwbggg
+rwubggbwrgubggrbguubwbguguurwgbwbugrwbuuwurbw
+burwgwwbuurbwbbrbrurwbbrgwruwurgwubgwwwwwrggguwuggrrgwuw
+gbubgwrurwrrggrwurbrrrgbwwuruuurgwuurbwgwwguurrgbu
+bururuwrgrwubbrbgrubgrubwbwrgwbbubrrbwbwbgrwurgbwwgbw
+burruwwrbbgbguuwbugwwrbwbgurrgburgubwwgbuu
+uubwgurwwubrwgurggurbugbwbgrwggrgwbugggwwbguwugrwuuwrrrbu
+bugburuwgurrrrrbruuugurbbgubguwuuuuubbwbbwgrrwwuwbgw
+burrwurggrbwurbwwgrbbwrbwwrgwugurwwrrbuubwwrbugbruug
+rbwbrbrgguruurgruwrbgbwruurrwugrububrrrwbwbuu
+rgwbwburbwrwwwwuurwggwbwgubwuugubwurgrwbrrwruwwgr
+buruuwrwwuwwwrggrbguwwbuuuwburgrwrrrrrwg
+ugrguuwrwbbugbguuruwbrbwggwuwuwbgbrwbgwuggwuwgwwbwbuubuubu
+burbggguubrwwuubugwbwwgwgwuurbburbuurbwguugururgwbg
+burbgbwwrrrgrgbuwbguugwwggggbbrbgwrwuuugggwrguruuwwbrwg
+rgwrugurbwgbbgugrwuguuruurbbbubuwgbggrwuugubwbwbu
+burwurggrwbrrwbgrubwwrbrwuwugbwrbrwuurgubrbuwubwbrrgu
+rurburwbgwbwuubggrbuurbbubgggrugburrgggguuwurbw
+urbggrrwbgugwbbgubbrwugwrgubuwwbgbuwrgguugbrggrbuuw
+rguwbgwwubbrbwuubgbbbgrurrrubbrwrbgruwwuwgwr
+burugggwbbbrbrgurrbruguwrgwwgubrubruggwrwbbbbbwrgwwugrrb
+bgbgrgggwggwugrrugbrbrbbuwruurrbrrgurubgwwrruwgbgbuugwubg
+burgwbrgrrruubwrugwuuugguruuwruruburgbwrgbwrruwr
+burbuwrgwbuuwwwggwwgbwgurubugurrgubgrrgbgbwrwwrwrgwbgubr
+wrurwwubwurgrbgbwururruuuwrwggruruuwuwwwgwuwggwgrgbrbrrwwu
+bwuwubwwugbwwuwbwugwurwbgubrwrurwgguubwgwwg
+bugburgrrgwwgwgurgugwwruwubwwubbrugwbbgubbuuugruu
+uuubbbbgguurgbubruwuggwbguggbuuruggrwwgwbub
+wwuwruwrwgbwbgbwuwbbgrbwrwgugrrwbrrbwwgwbgbbgbrwu
+brburubggrubrgurubrbrrubgubwugrbrwgugwuuuw
+wbruwwwwbwwwuuguwururgurwbbwuuurgguuurrurwuugwbgruuwugbwg
+gwbwrgbgruuwuwrgrwbwrurwbbbugwugwguwbbgbbbrwwugbrgru
+gwrwgbwuwbbbrgurwbubgruugbbrbgbrwbgwurrwugwgwguw
+ggurrgwbguuuurgrrwrwgggbgwbwgbgrbuuwuuwuwgbrru
+burruurgbgrrwbguruwgwbrbubguwurbbwubbrrrwruwwrrbbb
+burwrbwuuwurwrrwwgwgururuurggugwbuggggrwrbubrbbuuuwwwgugb
+bguwrwgrbgugwuugruggruwwbrgubwubugwrburgbugugrbr
+bururggrbwwbgrwuuwubuwugbbwgbugugrrwbggrgbugrbg
+bbgugbwurrgwbuwgbwugruurgrrbbgbwwrrrwbwugggr
+rrbuuurrwguwrwubgubrwgbguuwbubbbuwgbuwgrbrugbuwubrwurw
+buwbrgggbbgurggbruwrwwgbwruubuubrruwwgubggrwrg
+ggwbruggurwuwggugbburbuwuuggwururwbwubrugbrbbwbguwrbb
+guugwgbguggbbbggrrgrrgbrggururwububgurgwuwuuggggbbrb
+burubgubwbrwuwwwbwbbrrgrguurgbuwuwuuuwrbggrbwurugbgug
+burbgbwbubbubwuwwwbrgbugbbgruwgugugrbubwrgwwwurbggugwubu
+burrgugugwgrrbrurbbubgggbrgbubrbbgbgburwgguug
+burwbugbwurugguwbwbwbubwgugggburugbrrbgrubbwrbu
+uggbubgubbwwurwbrwgrbwruubwuuubgwuuuubrurbuuw
+rwrgbruggruwubggrbrbburuwuwgbbgbrurggrgbugrwur
+burrwrggrgwrrgbbwguubgrwubguwgbgwwggwgubrbwrugwgrubwgwwurrru
+burrggbruguugrbuwwubruggwwgbruwwrbgugbuuuruubgrwrrwg
+burugwrubgubuubwrbgwwwrwgrwwgugbrbgbrgrrg
+bggrwuuwggwwwbubgwbbgwwruuguuwguuuubrrwurrgb
+burbbugrgrwbgrurrrbwbwburbburwuwuuwgrbruurubbruguwwwrugr
+burrgbwubgrwuuwwrugwwuububrbubggugwgbubrrburbwbrrubuugggg
+buuburgrggwwgruwuwbubbuggwbrwrwrrburwrrwwbbbbggg
+ugruuruwwgwguggubuuwrubwuuguwgrbuubrggwbbbggbuubgubgrwbub
+burbrrwbgggwuguurwwgwurwbbbgrrrwubbwwruwrgbr
+rwurggrbrwwuwgggbgruubuwbwrgbgbgrbwwugugruubb
+gwrbwugurrrbgwuruwbggrrwwbbubbwrburgwrburruuwbuw
+uwggrbbwrrwwrwuwbugwrgwwgrrbgrbrrurubuuwgbuw
+wbwubbbwubgwugggwwwrbggwrwwggubuwburbggubbww
+gwgrrwrggbwgurrwrrgggrgbbwwrubrwwwrbwbwbwwgbburrwuuururgwu
+wrwgubbwuugguurwgggwrgbwwrrgruwruwuubrruuubwggrubb
+bgbwuuuwwwggwbrurbgbwrrubwruwuuggbbgrubwuubwuggwruuurgrug
+wwrurrrgrbgbwuwuubruwrwuggrwwgrrruugguuubwwgrgbrgr
+burguwbgbbgggbrwuwbrrbbguuugurbugbuubgwrgruurgbrwwbbwu
+burwgrrwrrwwwrbggggugwrbwuuuugwwubuuwwub
+wrbbgwuwbbrwrbuwwrbbbbburgwwurwugrrwubrurubbwugggb
+burwrubuurbwggrwugrurrgrrrubuugwrgwugwugwgbbgwuwrwggwur
+burbugrrgrgwbuuuuuugbbwrwgugwuruuggwurguggrwbwb
+wuruuurgwuwrubwgwbguubbwrbwubuuwwbwgrwubuwuggwgwgbwgrgg
+urrruwugwubwbgbbuggguwggbuwrurrggwwwbruubuw
+rrwuwugbubgrbwubgrbuubbbbgubwgwrurwgrrubrwubuubgrwwg
+rgbuugwgggwgwrrbgbwurggwgbuuugrwuuugguwwwwbrruwguuwww
+burrubrrbuwbrrwwgrwbubgrrwubwbbbgrgbggwwgururrgubuwwgurbburu
+wrwrgwwrgrubwwwrggwgbwgrwwugugugwgrubrggrgubwwrgrbg
+burgbubggruwbuubbrburbgrrwugrbrrrrgrwwgrbrbur
+burrwbrrgbbwruwubwrwwuuburubbwrbwwrbrwgwgbugrr
+brubrburguggbgggbgurbrwrggwwggbbwwubrbbrgggwgbwgbgwgggu
+gwuwbbrgrwrrggugbbbbrbrrubgurwubbwwbwwrwbuwwrwuggwrwbu
+brgbubgbguurubgbgrwrgbwrgwrrrbrrwubbbbgrrrubugrwuuugubgu
+burwruguwbbgubbbwgwgwbbugwurwbugwgggwbgugbggbggbwbbrggug
+wgwuugrruwrggubbbwugwrwbbggbbbgrwbwubggwbwguwwbwruw
+gbuwgwbuwggggwgbwgrggggbrwubbggwwbrbbbggugubrwrw
+wugrrbwbbgrrbgrgbrurwburgwrruuwwwrrwububwggrrrrrrbgwuguu
+grrubwurrwugrrwugububuuurwbbrbwubwbuuwrwrugurbggrwrrw
+wbwrwgwwwbuggrubgwbuuuwbuwrwrbuubuguuubrwuugrbrrruwr
+wrwuurwugbgwruugwuubguwrrwrubrruwbggbururwubrggwbggr
+wbrgurbubrwbbruuggwgbuggugggbgbuubrrbrbgwbrbbbbruugwrgurur
+wgububruguwwbbrwgubwguwwrwbbbgrgrurguguwbugbwugwrbuuurw
+brbuubbwwrgugrwwrbwwurrrbugbwrwbwrububuwrbuuurwb
+burrrguwgbggbggwbgguggwwbguuwwwbuuubrgrgb
+rbubuuwrburrwgbwrbrrwugwwrgrwwgrguubuwrrrrgbwbgbwuuug
+burbwgwbbggbwurgrugwuggubbwbbuggrgwruwwugbru
+buuugrbuurgugbrwgguuruuugbbrwggugrgbwurbrwbwwug
+bgwgbbruubrurrrwbuurwguuuuugrrwrbuurubgguwwwrbbuuwbrwbrwgr
+rguguwwwbrgrgwggwuuuuwburgbuuwwuugrwurbgbrwbrrgbwgb
+rgbbwubruuwrrwwgbbbuuruurbrrwrrbwbgurbwugr
+wurbwrbgrubrrbbwuuwuwbruuwwbuurwuugguguwuruuwbwg
+buruwbbrbbrwrbbgrburwbbrgruurwbrgwuwbburgugbugwrburruu
+wgrrrubggwgwwurrrbrwwuurgwuruwurwggbggubgwrur
+rurwbrguggwwrwgggbwugbubuurwbruuwbbwugrgubbuuuwrrgb
+rugwgwwggwwwwwbbuwrggruwbbguuwubwbbrbrguwrrwruurggbwuwurg
+uwurburbrrrwruugrgburrugrrgggbbgrbubrrbwgbwbug
+bgwgwbrbwburgbbruwwrrrurugbwwbwwbbrgruugrwg
+ggwurggwurrrwugwrrbgbrwguguuurubwuwbrwuwuruguguuuwu
+burggggrgrurbgugwrbbbbgrbbwbwwrggrgbubwug
+burwubrggbrwubgubrwwgrbubrgggruuuuuwwgrguuwugwugggrr
+ubrggggbuwggrrubbbbwggwbrgrrwbgbgggbwgwruuuggwuurgru
+gbrwuububgbrgurubwgwurwwuuuggruugbruggguwruuwuw
+burrrbugrbrrggrubruwbrwgrggguurugbbbbuuwwwwgbgbbggwrrruwubbu
+burgbbwbrbrrguwuubggbwwugwgbguwburbburwwbugwrwggbrrrugguwgrw
+gwruubbbrwbwrgwbwuubgbwrgwgbbgbbuuwgbrwrwwrgrg
+burgrruubuggrgwwrbuurrubwgrwrrubgwbbwwbuubbw
+brrbuwrbwubggbrggwguuuugbgugwubruuuurgbbwbbbgbwururu
+burggugrbguuwbwugurwurwwruwrgbruwbgburwgwurw
+rurrgbuugwbwrgrwbwgugbrubuubbuuugrwwrrbwgrrugbwrrwu
+burgubggrwgwuwwrgbwbwbrrwbwrgbrbbrgbrrruwwuwwburbggww
+bbbrrbwbbwgurbgrrgwgbububuubrgbgwbgurbrwurrbrwurrubru
+brurrwwwuguubugrubgurrbbbwwguggbbugwrrrrurwgwrrgurwwb
+burbrguugrbgrrwgrggwrbguuwwbwruugwrbugwgbrgwuwg
+burwgrbrgwgwwrwurrbuuwwuuwubwwgwgrgurwrrgbgubuurrwbug
+wwwbuwwbwrubbgrrbubbruwwrrruuugguwbgurbbuwrguwwgwggug
+buruwurgrgggbuggwruruggrgwggrgubwwugwwgrgbrbrgbbrruwru
+burbbgbbuwuururbuuwwbgwrwwuwuwuugwwuuuuwubruw
+wuwrwggwbbruwuuwurwubgugbwgwgruuuwwbrubrubrbwugrruruburgbu
+burbwbubrbwrururburgbuggwuurbrugrrwgrubgwugguuwuugrrggbru
+burwbwrgrgrwrgrgbrbwubbbwguuurbbrruggrubbrwgbuwrwgg
+burrwuguwurbrurrrgbbwwrguuuguwwrgrbggbrgrbu
+uggbruwrrbuurruwrggbrguwbuwgurbgrrwgrubwuugwbbwubgg
+burbrrwguruuwwgburuwggwgbgbuggruwubgbrwgrgwggg
+burwgrbuurgwwbwgubuwuwurwbwrubwggbrggrrrw
+burrurwuurgrguwrrwgugbwgubwugwrrwuwwgbrbgugrgg
+buwburbrwrurubuwwguuwgrbgwbrrwubwrrbrrgubggbgbrrgwwrbbubwwug
+bururuwrwrwbwgrwgruwrwugbruuwurugbbugbbu
+burrgwbubruurbububrugwgubuurrrrrrbgbbbwbr
+gwrurbrwgububrggrbggguuwrrguurwrgrrbrwbruuguwbrrgg
+burgguwrruwgbbubgrgurbwwbbgwbruwurggwgbwwgwwrrww
+burbuuwrruggbwwbwgbuwurwrwrgrgubrbburbubgugugwgrubrugubbrwr
+uwgwurgwwbuwbbbwggwwwrggggbbburbugwwgwbwwgrw
+gwrrrbgrugugubrwwwgugwbwwbuwbubrwgbwuubgguuwubgburgbgugu
+burguubgubuurwbgbwbwbggugbggwbgrwrrurrggbuuwrrwugggggb
+gwgrwwbgwbguuuguugrgbwbrgwwbbbrwrwgwggbgbggwwwgrrugggg
+bbbuwbgwbgbwgguwwbgrrrwwrbwuugbwbbggugwwrgbbwrr
+buruggrbgwbgguggwruggubwgrbwwrwrbrwwgrrbbguwbgrbwgu
+burbgrwbuwugugwrubbwrgubwuwrgbruwguuubwrrgu
+bububguwuwrrbbgbrgbruuuurrgggubrbbruwrugub
+burrbrwuguubbrrggugbwuwggrrbrgbrrgurggwugrbwbgur
+bururruwbrwwuuwgbugwubuububrwgbgburgubgwrbbbrwrrggwwwwgb
+burrwwubuguurguggrggrurruggbgggguuwwbrbgwggwbgrbbg
+burgrgubuwururuurrrbrrrwruwrwrbwbbbggwgbbwuub
+burgbbwuggrbwwbuwrurbbwubwwuubgrbguwbbwrruubwuwbgbgbuwbuub
+uuugwuwbwubgwubugbbugbbwubuwrbwgwrurrbwwwg
+ugwuubrbubrrrbgrrrgggrubggwwgwguwbbwuuwrwr
+burruwurguubrwrbwwbuururbwwbgruwggwwwbwurwruuwgwrgrububbr
+bwggbwwwggbwwgwrrwugubwwguwubburwwwwggbubrbuuub
+burgbwgwbwbwgggwurbbbgrrwuwurwrwggruwwrrgrgrg
+wruuwurwrrugbrgwwggwrbbgwggggwwgbugbrgggwuuu
+wrbbrwwggbuwugrgruuwgbrggbgrrwgrugggruwrbururguwuugbwuuur
+burbrguurrggbggrgwrrbbbbbwbruuguwgwbubbuuwwgrb
+bwgrwrwbbgrwwbuwgbbubbgrwrbgrrurrubuwuwbwrwwuurbgbur
+rwggrugrguwgrwurwrwuuuwrwrwuwgubwrbrruwwwwgruurwuwguwgwrr
+gwgwurrrruubuguguwrgurgubgbbrurbubbgguuurugbwrwbb
+bwbuubugwwuruwrbugrggugwrwugrbuwggbrbrugrbwbbr
+urbwuurrgwwwbubgwubwbgrwgwgwrruguwgbwwwbwbbbrgbwwububuug
+ruubrbrwbwgbbrrbubwbugrbbwbbbwwwguwuguuugrrbgwwwurrr
+ubrrbgubwwugrubruurwurbgrgruubrgubugwwgruwwurwg
+bwrrrgrbwrgbruwbrrgwwuuubrbrrwbwgwuugurbrgguwwbgrrwwurg
+gbwggwwbrrugwuuurrgbgbugubwrrubgurbgubbrwuru
+burrwbbuuwugbrwbubwuruwbwbbwbwbrgwguruww
+burbrbwurbbrbbbgbbwuguugrwrwuwwwwgrgrbgw
+rbwuwububugrguruwuuguguwurwggurgububgbggggbgbbgbgb
+burgwgwwbrwgwbgbgwuwrgrwrrgbwwguwwbwgwugbbugruuwb
+burgburrgbbugguwbgrwwbwbrggbrbrgrgrbwgrubrrgwgbgwwrbrwwgb
+wuwwgrrrbbwuwurggwrrguwruurwwubububbwbgwugggu
+uubrwguuuwbuurruwubrgwugwubgwbrwwbwrrrwrurbgbrgruuw
+wggubbggubugbgwwuubwubgbgwrrggugburbbrurwggrwurbwguubbg
+gwgruurrwrgrrwruwugguwruguubgrugggwguggguwbguburgbgbuu
+rguggwguwwwuuwbubrwuwbwwbggbbbrbrurguggbrbuwurgurr
+bubguwgrwwrgrrgbrrwwrrrbgbggwuwurbgwwwgurrrrwwurrguubru
+burbwwwwwwrgwbuubwwwwrbwrrbwwwggrguguugggubwgwwgwbgrg
+rgrrgggrwbwwwbguubgrwuugwgubbubbwwruwbgbrrbguuggu
+rugubgurbwbgrggugwuwubuurguwwbwuuuugbugwruwrwruwrwgurwwgbu
+bgrggwgwuuurwburugwbubguwwruwubgbrrgbuwwbgubgwrwbwwwg
+gwwuuwrggrbwruuurbugwwguwuuugwuggubgbgwgugwbwwwwrubrwrggru
+wrbrgrbbbruruwubwgrburugwwugrurrrrrugbrrwggbwwgrggr
+burwuwgugggbwurrurbrbrggbgugguuwwwrurwwbubbrgrgrrugrurrrg
+urwbgwrbbgguwguwbrwwubwwgwbrwgwububbgwrgwu
+gwgbwguubwrrgurrbbuurrrugruwbbbwrgwgwuwwwbubuww
+burrugbwuuugwgrwwbwrrbgwuwwwwrrwgwrgugbuwbb
+burwbugrbrrrrguuggrrgguggbrruwwbuwbgruwbwugwuwr
+burwbrrrrwrwwuuggbwruuurwuwgbrrbgwbwbrbrrbwrruuugugu
+burruubwwrwrbrrugwugbguugrwuurwrrrurbrbrgbgb
+buwwuurwgubuwbgbrrbrbwbbrwgugwgbwuguubrguwg
+guuubrbgwrgrbrbuggbgwgwbugrbrubbgguububwgurg
+brrwwguwubbgwgurbgrgbuwggwbwbuurwgubwgwuuwwrububrubgubu
+buruurbbruwgbrggwrgwrrwrubburbggguuwuubbrbw
+buggrrgwwggubwgbbggguwuwwguuwruuuuubwggggbbrub
+bgggrgbguwwubrgbwrubrbwwgubbbrbbrrggrbbguwuwwwubb
+grwwrggrwbwgggrbbgggwugrwwurwbgwbuugbbgwrwwuwrbwubwbrbgu
+burbgwwbwwwugrbgbrgggrrrbgrbbubgrwrwwurbu
+rgwbburwrbbwwgwgrgrggwuwrbwubuuuwgubruwwgwrbg
+burbbbrrruuruwwubuwwrruwruwrbubrbbbwbwugrurbuggrwu
+ruggrbgwwubbrrgwggwbgbrurrurgubgbbbuwggwrbr
+burgruruwbbgbuwbwwbbrrrbbguwrrgwuubrbgbruwubwuu
+bugwwggrggbgubwwwbrrgrwbbrwrgbgwbuubbwgbwbwguwrgubwu
+wurgbwbwrbwrbbggrggbgwugbubwgubwgburwgwuuggwgrwbbrrwwrub
+grruruwrrruurbgwurgrwubbwgbwwbgwugbgrwbrgbrwgrwgbgubru
+grgrrwrgggbwuuurwwrbbbguubububrubrgwbwbbgggbrgug
+burbbbwrbbrbuubbgrurwrrbbwrubwwbrrgwbwgwgrwrwwrubbggrbwwbru
+wrguuuuurgubrrgwrrgggwgwbgwwgbgwbgwubburrbubgb
+wrbgrugwrubuwbgbrrbugwruwwwuugrbbggggggubwbbgw
+bgububbgbgburgwubgrwurwgrwgbbwuggwbggggubbubbwuwggrgu
+burbwurwbuuurbrugbwbuguwgbbrrubrgbuwwrrg
+burwguuurrrwrwggrwwgrrwbbwubuwggrgwbbuwrubbrbubgggbbrrbruuu
+burggggbgrbbbrgubwuwuburbrgwbwwbgubrgrwububuurubbggu
+burbbugwbruwuubbbguwrggggwwruuburwwwgwbubwubbwbrrbbbwuwb
+burwrrggugrwuuurrrggrbruuwbwbwuurbwbubuwgbrwbgbbwwgbwbwwurgr
+wbruguurrbuburwgrwbwugbgbguwuwbgrrbbrwburwgwbwww
+guwbgrgruurggrrubwuuurbwruwgrrgububuuwgbbwwruwwrwbrgb
+gbrbbbwgbbggwrbubrrugurgggwbuwbbwbuwwwbgrgbr
+buruubbggubbrrwrbrrurgrubbwrbbbgbgrbbggwugbgrugw
+gbuuwruwgrwgbbbggrrrbwbugrgurrgbrgrbrbggrug
+bgugbgrbrbrburgbbrbugwgrrbgrugurgwguubguwgwuuuw
+wwwbbbubuwubgurgrggbugwurrwwrwgrbgguwrwbgrwuuugb
+bugburbrbwgbrgrwwbuwbrwuguwgbbuwbwubugwb
+burgwwurwwrwugbrugggwwuwgbrgbuwgbgurwgwbugubggugbuubrg
+gugwugrrbgggggugbwuuwbwwrgwwgwgbrgwwrgrgrguguwwwwbgr
+bggbrruguwuuuurwrrbggrbwrgguggbgbbuguwuggrbrurg
+buwburrrbrrrgruwbwrwrbruguuwurrruuuwbwbgruwwgbrwubuwbgub
+ubugwbrrrbuuuwrbrugwrwruuugwrwbggguuwbuguwwrwbbbbwrwgr
+wwwgwbbbwwgbbgrrbbrbruggwuugwrrgbrbugbbguu
+burgrbrbwbuwrgwgbwbwwuuuuururbrugubwwurbwwgrwbggbwbgwuuwg
+burgwwurgbbuubwbwwrgrrbgbuuuwbgrgwwwrbbgwgruruwbuug
+bwbrurbugbruurrwuuuwbgrbwrwgguugbrbburrwugubgugrbbgruuuw
+burgwrgrwwrrgbggburuwbuuwbuuuwbwbugwwwwwguwgbbwrurbgwu
+bgbwwbuwgwwrrwwwuwbbuugrrgwwuwbuuurbbbguruwrrugbubuwbbbwwb
+burggbbgbwrwurrwwbuwgrrrubbbwuruuwuurgrgwgbwubu
+wguggubrgbrubbrrggurwrrurubgwgwuruugubgrwugbruwbbbr
+burggwwuwuwbwrwgwrgwwrrurggbwuwugwbgggwrbw
+bwrwuruggbrbwwgrrrubbrbbubbgwwgbbgggrgwwrbbbrbgbwwggrgrrr
+wgbgburrbwurbwrbubrrrbwwruggbrrgbugruugrrgrggrbwbuwbg
+burwbbbbgruuuwbubuwbbbbrugrwwbrrrrwgguubr
+burrbguwuwgururbuuuuwguurbgurbwgburrurwg
+burwubrubgrrgrgubrgbwugubgbbwburwgwbwwrrwuubburr
+wrwrwbuburbrbburuuugubwwrrbggbgwwbrurwruuugbbbwgugw
+burrugrbrbwwrwbbububrububbrwugrwurubrwbrggwwgggbrbrrw
+burrguwwbruwrgurrrgwrbgrbrbgurwbgbuwrgrbggwwr
+burwgurgwbrrggrrrubrwgwrugrgrgbrwgrbgwbgwwrbbbgguwrwgggw
+rbrurgrrugrbubwurubwgbbrbbbbwgubuggbbrrrwruurugruggu
+uugwrwbuwrbgbgbwbbuwruwwgbggbburgggwbwwggrgbwubg
+burbrruwggbrruguugwrbbgubuuwuuwrbwwguubwbwbubbburggg
+bururwbggggbbggbwwwwwbrbrbwwbrbbbgrguwuwrbbr
+bwrgrgrwbbwbguugrwuuuububgrguwwbbgbbguuuwrub
+burbrwwbgguggwguwgbrugbruguwbuguugwwubbbuugbuwgrwbgbwgbwuw
+ubbrgbbrrgbugwwbgrwugbwugrgubguuwgguguugrgugwwbbgwuwgub
+burbrbrwrwwbwgbbuubuwwgggrgbwwrrwubrguwwwgrrbwwrwwgbug
+wwrbbwugwugguruugrbuwwgbwwububrguubrbrbgugbrrwrb
+uurgwwrbgugurwwwbbwuubwuubbgugbbwgrbrbbwgruwrbgrbrrrgwbb
+rubrurrgbburwggwbrrrubwrbrbgbrwgubwuubbggubggbg
+rruurbrbgurggurrbubrgbrbugrbrwuwgbrgbbubwwrbwrgwguguwurru
+buruwwrugrrwwbuugwwggubwbrgwgurbruguggwrrrbuwugwwwrbgrg
+gwwubrguwbbbuwwubbbgugbgubbguwubrwbrgrbgrbrbgwwrgbwrrbr
+burgggguwwwwurgwbwggurgggggbrgrbrgrbrwruwwbuwgwrb
+bbbrrrurrgurrbbwbbwurrbrwrbbrrbrgwgrwgubgwwgwwbuwbbrwub
+urwbgwwugubwuwbrwbwgubwbrrwurwuurguubbbgwuugbrbgbggg
+bbuubbbubwrugruuurggruburuwubrgwbwwwwwbbrgwwgbrggwubrrrr
+buruwruwbrruwrrgrbwrrggwbgrububbrwubgbgwrwbwuwrwuwwbwgw
+wrwwwurbwgggbgubwbwbgwgrbgwrbrbwurbrwgrgrbgwuwrwrwuuwwr
+ubgbuugrggbwbuwwrbrgguuurrwguwburbgwbwugurubuugwrbwuw
+burrwrbuubugbbbgrwbugwbgugrbgwurrwrwbgwwbrrbbgguggggwug
+burgwuwuwwrbruwrgwurgubggggwrrgugbrbgubgrwururbrubrgrr
+bugburuuuggwggruwwgwbubgbrruwrrruwwggbrwrgurrbuuwwgrggguw
+buruwggurbrbrbbbburwgrrbrbbrgurwwugggrww
+burgrrwbrwuwbrrbbuwgrwwrurbwurgruruwwwuuugrggrwgbwbugbuwu
+rbrugruuugbrbwrbwwbgbrrbbrruwbbuwgrubgggrbgrrugbrb
+rbbwbwwwggwrwwgwwubbbuwubggbrrruwburruwwguwwggrugbbwru
+bbrgwubggguwrruwwrurbrbwggbwwrbguguugwugbgwbbubrg
+wbbguuwrguugwrurbbubwuwrgbbwburbbwrgubuugwuuuuwgwu
+burgurbrgwugguuubwuugwuwuruuwruwurgggbrwgbuugugg
+ugrrwrwgugrrurguburrgwbwwugwurugbbuuwurrgbrru
+wgrwbuurugwbrgrrrbrgggwbrbuuwgwgrrurruugwrbgbgbwbgbuugrubr
+wuugwbuuuggwbrrwggwwubbrwruuwwwwbrgrbbruuwwugbwrbruurwgu
+burugguruwgrgrbbrbrbrwrbbruwgbrgwrubbrwrgwubbwubuwbg
+bwburbwrbggggrgbwbwbwubwburbgwbbuuugggrrgrurwgbrru
+gwgbbbwgrrbgugwwbbwuugwrwwbugbggbugrbgrgbrbur
+buruguuwgrugbuwuwgrrgrbbuwbguwgguggubgbbguuggbgrrrwruur
+buruwgbbgrwgwrbubggurbgrbrbbbugbrwbrbwrgr
+buwburgwuuubwbwwuuruuwbbrwbrbwgwrwuuwggwwguuwurggrgggwbw
diff --git a/2024/in/day19.ref b/2024/in/day19.ref
new file mode 100644
index 0000000..29648be
--- /dev/null
+++ b/2024/in/day19.ref
@@ -0,0 +1,10 @@
+r, wr, b, g, bwu, rb, gb, br
+
+brwrr
+bggr
+gbbr
+rrbgbr
+ubwu
+bwurrg
+brgr
+bbrgwb