Add day 19

This commit is contained in:
2025-01-24 10:19:13 +01:00
parent ed8f30c972
commit 0ff21ba937
2 changed files with 581 additions and 0 deletions

179
Days/Day19.cs Normal file
View File

@@ -0,0 +1,179 @@
using System.Collections.Frozen;
using System.Numerics;
using System.Runtime.Intrinsics.X86;
using Spectre.Console;
namespace AdventOfCode.Days;
public class Day19 : Day
{
public override int Number => 19;
public override string Name => "Linen Layout";
public override void RunPart1(bool display = true)
{
var (towels, patterns) = ParseInput();
var impossiblePatterns = new HashSet<string>();
var possiblePatterns = 0;
foreach (var pattern in patterns)
{
// Check if it's possible to make this pattern
if (CheckPattern(pattern))
{
possiblePatterns++;
}
}
if (display)
{
AnsiConsole.MarkupLine($"[green]Number of designs that are possible: [yellow]{possiblePatterns}[/][/]");
}
return;
bool CheckPattern(ReadOnlySpan<char> pattern)
{
// Console.WriteLine($"Checking '{pattern}'");
if (pattern.Length is 0)
{
return true;
}
if (impossiblePatterns.Contains(pattern.ToString()))
{
return false;
}
var prefix = pattern[0];
if (!towels.TryGetValue(prefix, out var towelsList))
{
impossiblePatterns.Add(pattern.ToString());
return false;
}
foreach (var towel in towelsList)
{
if (pattern.StartsWith(towel) && CheckPattern(pattern[towel.Length..]))
{
return true;
}
}
impossiblePatterns.Add(pattern.ToString());
return false;
}
}
public override void RunPart2(bool display = true)
{
var (towels, patterns) = ParseInput();
var impossiblePatterns = new HashSet<string>();
var knownPatterns = new Dictionary<string, long>();
var possibleCombinations = 0L;
foreach (var pattern in patterns)
{
// Check if it's possible to make this pattern
possibleCombinations += CheckPattern(pattern);
}
if (display)
{
AnsiConsole.MarkupLine($"[green]Number of combinations that are possible: [yellow]{possibleCombinations}[/][/]");
}
return;
long CheckPattern(ReadOnlySpan<char> pattern)
{
if (pattern.Length is 0)
{
return 1;
}
if (impossiblePatterns.Contains(pattern.ToString()))
{
return 0;
}
if (knownPatterns.TryGetValue(pattern.ToString(), out var count))
{
return count;
}
var prefix = pattern[0];
if (!towels.TryGetValue(prefix, out var towelsList))
{
impossiblePatterns.Add(pattern.ToString());
return 0;
}
var possibilities = 0L;
foreach (var towel in towelsList)
{
if (pattern.StartsWith(towel))
{
possibilities += CheckPattern(pattern[towel.Length..]);
}
}
if (possibilities is 0)
{
impossiblePatterns.Add(pattern.ToString());
}
else
{
knownPatterns.Add(pattern.ToString(), possibilities);
}
return possibilities;
}
}
private (FrozenDictionary<char, List<string>> Towels, List<string> Patterns) ParseInput()
{
var towels = new Dictionary<char, List<string>>();
var patterns = new List<string>();
foreach (var line in Input.AsSpan().EnumerateLines())
{
if (towels.Count is 0)
{
var split = line.Split(", ");
foreach (var range in split)
{
var towel = line[range].Trim();
var prefix = towel[0];
if (!towels.TryGetValue(prefix, out var towelsList))
{
towelsList = [];
towels[prefix] = towelsList;
}
towelsList.Add(towel.ToString());
}
}
else if (!line.IsWhiteSpace())
{
var pattern = line.Trim();
patterns.Add(pattern.ToString());
}
}
return (towels.ToFrozenDictionary(), patterns);
}
}

402
Inputs/Day19.txt Normal file
View File

@@ -0,0 +1,402 @@
wugw, wrrbgr, rbgr, bgbrb, wuwb, bug, wubur, uwbuwbug, wruu, rbbr, wbgrrg, uuwr, bub, brbggggr, brgguw, gwwuu, uwrbggw, wuwrrr, wbuurww, wwwuwru, gubgr, gubu, ug, ubu, gggrgr, wg, wrgbggu, uwgwubw, bgrgb, uu, gbug, gwuwgr, bgwg, rurgb, rr, ubw, wrr, rggw, ubuu, ubr, ugrr, wrbwrruw, uw, ruggrb, urwwurg, gwr, rurwb, bu, uuu, bbuwb, urbu, ugb, uruub, gwgrrw, wbbw, rwgr, wur, bwbu, bbg, wrbugw, brgr, uurrwg, guruu, uurrrbw, bwwbrguw, gbbgu, bgg, bbwwgbw, rww, uurrr, bgubwb, wwgr, gw, wrgub, wgrg, rugwbb, bgwbuguw, brg, ggbw, bgbubb, wwgu, gwgb, grur, gubw, wbruug, rg, brubbgw, uuugr, rru, brbr, rwbuuu, ubuw, rgru, rwrwgb, wub, rwbu, bwwrr, bwrg, uggbur, gwb, gbugwb, br, rbwu, urubg, uuw, rbb, rgrwu, bguuw, w, www, wurgb, rwwu, rwg, uww, gbwurubb, uuugb, rbrurw, gggbwu, rbrwrgwr, bw, uwrw, bugw, brgguugb, brubw, bbrb, bru, urgr, urwu, bwbb, bur, rwrr, wrrbu, guu, ggugwuw, rwrurb, wbur, gbu, bbb, ur, brw, wrwbb, ugbuwgug, rrugbbru, wwggbw, gwgwgur, rgw, rwwr, wrg, wugrwru, ggwr, ggr, wug, ugu, gbbw, wgww, gwwwuw, gbr, rbwwru, bbru, ruw, gbrgw, gug, bwbuwrb, uwg, rbww, bbbrb, ub, rgrbr, ubg, wugwub, bgr, ru, bwr, bwbug, rgr, wwugr, grg, rwu, wbgg, rgwu, ubugubr, buggur, wwb, rub, wugbb, uubb, uwb, wbb, uwgbw, rubrg, rwubgu, wgwbb, bubrbrww, bg, wwrggu, gr, gggr, ggb, wuuuu, bggwb, ubgrwbr, rgubwu, rwr, gbww, wgbub, ubrb, ruu, rgg, wgrwurrw, ubwggr, uubr, wrwrbrr, ruguw, bwu, guwrug, bgggw, urubr, rruruuw, gur, wrgru, wb, rgwwg, rrguu, wwwugg, rgbg, uwwgg, urr, gwu, ruwb, buwbgur, bbwugb, bubu, rwurwg, wgrb, rrw, uwgwr, ugwu, rgrurg, ww, uwgrrrgb, wrub, bgb, grr, bgwbru, wr, brrbg, rurur, wgbbbur, brwgg, bwgwbw, uuurg, rw, uuwguu, guw, bwg, bwrrwrr, ugr, rbwrg, rwb, urw, uubg, bbwrugr, bgw, brb, rb, rbr, ubbwurb, gbw, buu, wgg, wbw, ugguubw, rurbr, rrwbuur, ubwuwr, urg, wwu, wrguwb, bbgbur, grb, gww, gb, buw, bwbg, grgb, bbu, rbw, rrbu, gruwbw, uur, wwbgr, bwbwu, bgug, uwu, wubbw, rgwr, rrgrr, gwg, bbbubu, wwgrbrw, wuuubb, gbg, uwbwbg, wgwbr, ububb, ubbb, rug, gwbbrb, ubrub, urb, ggrwrgg, rrg, wbr, uub, wbrwbb, ugg, wrgb, bbwu, grurwb, uwbr, ugug, grw, gru, rwgu, wrru, rwgggu, rrr, ugwb, rrrw, brr, buwb, rbwbrg, ugw, rwuuguw, bwgggwb, bugr, wggbrr, uwgrrbub, bgbuuwug, burrrbu, wubwuu, ubwur, ubgwb, uru, brrb, wgb, bwuwgbu, wwuwwbu, bgbbg, wwru, wgr, ggg, guwuu, brbg, gbrb, ugrg, wwgur, wbbu, rwug, gbb, wugr, wuur, ubwurrwg, gwruubgu, wrrw, wubwwg, gugur, urgwu, wrbu, wbg, grwb, ugrrrrb, grbg, ggbbu, gbru, wgw, ggug, ubuub, ggu, wuwrbugb, ugrrrr, gbbubrr, rbgbb, bwwbu, uwwu, wwgbbb, gbbu, b, brwgr, wrb, rwrrw, rubwugg, bbr, wwr, wu, bbgwgbb, rbg, rwwgbbu, bgu, wubuug, ubwww, uggr, rbbbw, rbwgwrbw, bbw, bbgr, rur, ubb, uurbg, wguwb, ubbrgug, wrwr, rwwugb, uwrubb, rrgbbru, bwb, gub, ggbu, wwg, bww, ruwrwg, gbwu, wuu, gbbur, wrubru, rgb, grugwbbw, r, rwww, rbbru, wbrrb, rwgub, ubbrr, wuw, uug, rgu, rggg, bb, g, wru, urgw, ggw, ugwwbrg, grrbw, rbu, bbgugrw, grguw
urwrggwgbrrwggwuubrrwwugbgbubwbuuugwbguggubrgwwrubub
wuwguurugggwbbruubbruwbruugwbguuwrwbrbugurbgugrggb
wrbgrwbwbgrrguwbwuugruugrwbugrwuuuuurrugrgggugwuububwrwbg
bbbrbwrrwrgrwubbwgbbrbwbruuuwuuwwubbwwgwuwgguurbg
bguuubgbwggwgurubuubgurruggbgubwrbrrgbbgugbbugruurggwr
uwbbgwbrwubrwuwwbrbubbuggbbbbrugbbrwrubwrg
rgrrgruwrrrgwwgrrrrwbuuugrgbbrgbwwruggwrwr
wgwwuuruuwrbwbuwwwwbrgurgrgrgruwbrbugbbwggg
guuuuwuwrwwrggggurwrugugbubrguwbrrwbwurbbrgwbwgu
rrrugwggwgwwuugrgrggbbuwgwwrguubbbwuugbgrugwbbwwugrwgu
urubuwwurwgurgwbggurrgrugrbwgrubbwwurbwubwgbgrgrb
bbbwgwrbbwruubwwwwwbuubrrrguwguubbbugwrwwgugrbwugbubguwgu
rurbwuwgugrrwbrgwrwwubgggbwugbbgbruwwbbwrggwbbgwgwgu
ggbgbgwruwguwbwwgruwbbrbgburrwgubuwgbwrbwwwrggwgurwbw
guwrwuwrrbwrbgugwguburrwbggurwbbrugwbgrbrwwwbwrrbbbubbw
gwrgwrggwrgbbwuwbbwuwrgrggwgrbrwrbwbwuugrbubwwwbw
bbwguwgwrggubrgbuuurwwwguubgbbuwbrgggguwbubrbwwrrrbwgu
wrbwgbgwbbbwrubwbrgrwbrguguwrggbbwguwubgwbbbguu
buwuuwurgbbuwgruwwrbbbrbrgggwwuwrubgrrbbbwwrrbwrwrbbwgu
urbrbgugbrbgwbgwrwuuwguwgbgubrgguugbwwgbbbwrrrbubgwgu
wgwbguwugbwguwburgbwuruuwwuwbgrbbruggbrwwruwwrugu
ubburrrbwuwgubrwgrrbbwwrgugwgrwbugwuwrwwuwguru
wwrbgugggrwwrbgbbbbuuurubrugrrurgbrrwrurwbwwggu
grbuggwbruggrrrbrwbwgwubgwuubwgrwwugbwggrububgrbgrg
brubwgubwrbrgruwwrbgruwrrguwuurwwrubrububrbgwrwrbgbbwrgwu
wwrburrburbwbbbrrrggrbuwgubbbgwwbgbgwrububgg
uurbgrwburugubguuwgbwruuwwubbugbgwbbggggrggrb
uuuuurguwwurrbrrgrurwuwgbrwbggbrrugwguurgg
rrgubrwbwwuwbbgrgbuuuwuuubgrubbgwrrgrbbrgwb
uugwugrrgrbgrwubbrbuwugbrbgbubuubggbbgwguwwgu
uruwwgurbrwrgwrggrgubburubrrurrwugrwbrrgbugbbwbgggwubbu
rbbgguugrwgurwgguggggwwwwurbrgwbbbgwwruwrbuugwwgrrugurbb
gruurgrrgrgubrugrubwugguugwbguugbrgbuuwrurruruggguwgwgu
bguugrgrurgwggbbbrguwugbrrrggrwbguwwwrwwurrwuuwgwggbwubwgu
gubgbwgbbruwrwwbbgubrwwrwwwgurrbububbwbwgbwuwbgbuwwgbgwgu
wwwruwgubrbbgbburrwgwbgbrwgbrguwrbbbruuuwgrrg
wuwbwurruwgbgurbgrwggwwwwrggbuuugbugrbwguggwggrr
rrrwwwuwurggbbwuggruugwubgwwgbbgrrgwburwruurwugwuu
uwwwuuugrbwbbwugrwrruuwrgurbbgbubuubgugbrurwr
bbuurbggwuwbwbuurrrgrwbgrggggbwuwgwrwgrwgwg
gbwrwwbwruguugwwbgbwbugwggbubgwugwbuwrrgbg
wurbwgubrwubrrrgurgrwuguwgrgwuwwwgwguruwwurgwgu
uuwgwuuruwuugrrrgugrubbuwgwugrbrgbgrgwwbubrubw
wwbbgguwuwurugguugwggwrurguggburgbguruwbrbbgrbgwuwbw
uwrgrbuwbrbgugrrbwuubrrbgbgrbbbguurugggurgrur
wbbubggwuurugggbubwrrgbgrubggbggugwwgbggwwubugwbgrrwgb
rgguwubwwrbwgbgggbwruwuwugrgrggbwrrwbbbugwbwg
ubwrbbbbbbrbggbbgrwwuurwwggurrrbrbuwwuwbwrgruubuwuur
bwuggrwwgwubbbwrggugwwrbwrrbubbugwggurgurwg
bruugbgwbbwwbrguwrubggwwrggwgrrrrrrrruwgu
gugbrugurbuwgrrugugbuugugrbbgwgguuuwggburgwubguuugrwggggr
rbbrrbrbbwwgruwrwuwgggrbbbgbuwurgwgwggurrgbggubrrrugwubwru
guurwbbubrbbrwgrggrbruubwgbuwgrugrggbbbbuubrwugburww
bgrubggwwgwgggwuuggwgurbgggbuwurwbwbrgrguwuruwuwu
bubwubbburbbggrwgbwurrwgbwuwrbugbwuuruwwgwubrbuburu
brbbgrrbbuuggwbrrrwggwwugugwwbwuwgrbuwrurbuuggugbrgr
bbuubwuubbgwwbbbgbbwbbbrgbuwwbbbburguwrgwgrbrbbbgrwrbbbr
ggwrbwgggrrwbruubururgwruubbgurwbuwbwrwrbrrugguubrrw
gwuguurrrwwgwwgwgwgrurgwuugrrugrbwubwrwrwwbubwwgugbbwgwgr
rbgbbggrugwwuguuwggbugbrbgwgbbwggugruubbgugwgbb
rrgubuubrbgrrubgguuwbrguwwubbubbububgbbgwgu
gbgrgrwbwrugbgbgwwwwubwuwbwbwuwbwrwbgwbugwgu
wrruguguguugwwwgwwgrrubbbgrgwgugbrbrwrrgbrubb
brgbuwgbubgrurrgwrbubbbggbwruurwbrbbuwgrwuurbgrwrbugurbwbr
uggrbrwwwbbrwububrrggrwrwubwuwwubgbuwgbrbbrg
urgbggrwwwuruugrurgugrrbbbwwgrbuwuruugbbwrrurrwwwuguw
brrgbuwwrurguggrrurbrgrgbbrbburgwwbuwuuuggguwbrwbbgb
uwggwgrgrbbgwruwbrwubrbbrrurgrbrgwbwbuwgwgwrgubuuwrbgu
brurrrruwrgurbgbwuwwwwrrrgwwuuggrwwgbbwgrbggubr
ugrwbbwgbbbruggbgrwrgrguubbruuuwwwrrbguguwugurwgbggb
ugwrubwrubuuubbbrurruwurgwgbuwbrgugwurrgwwburbubru
wwgruuubggbgwbrbwgbuwwgbrubgggrrrwrugrggwrbrrwwuw
bwrrrbwbbwrgwguuwubwruwgbbuugrugbggubwuubwwggrrwbrwrbwrgg
rbbgrrwrgbrbuwwurbgwrggrbguuburubwbwbuuwguwrbrw
ugrbubbugbrbwgbrgbuuuubrubbbrurwgurgbwuggbrurbrggugurruuwb
wubuwurubwrrbrgrguwubuwruugugbubuwrrugbwrgwgwug
uugurwrgwburwgbuuuwwwwrbgbgrubrrubbuguuuwbbuw
gubuwruubgubwbrbrwwuuurwrurbrruuurrggwurwgw
wggrbugwuuubbgrbgwuwbrwwbuuuubwurrwgubwuur
wubugrubbrwurbuwbbgwubrgrwbubwwggwrbwggrgwbgrug
rwwgwbwwbugrbgwbbbbwgwgbbuurrggwbrrgwgbbuwbrguwgu
ruwwubrrrrbwrgruwrrgwrgwbwrguruwrgwubbbuggwrugwgur
gwgubguwguwgurrruwbwgbubrwwrbggwguwbbrwwurubburwg
ugruburuurgggwgbwugbuwgugrgbgrgbwuugruwbwwggugbwrguguuwgu
ggubwuwwrbrubgrrrurrurwbugggrguggbwbgbwwuwwwgwggbggbwuuuw
rgbggruubugbrurguurggurgwwrgrbubrrrubrwgbrggurguub
rgguwwububrwgwgbguwgurbggrrwwrrbgwrgrubwugu
burwurwrrgggwrwguburubgrrwrurgrbrrrwguguuwwburgwuuuruwgu
wwuwurwrgggrurbbwgrrrrbwgrurrbggguuwuruuugruruuwburwgrwgur
gwrrwruurbwgbuggbgbbgubggwwbuubgruugrwuurgbwuwwu
bgggwrbrrrubbbbwrrrbburwgurbburwugubbggwuburbwbuwwgwwbuggwgu
rgwuwgbbrugrwguguubwguuruubbgwugbguwurgrgbgruuwrwbg
ggbrguguruuugwrgwrwbrbwwwgrwwrubbrwuuurbrwrrb
bgruwubbbwrgwwbuuwrrwwuwubgrbwwurwbbugurgbgrbgggurrrw
uurbugwuwuwwrrrwbbgwgwubwwbrguwuwrgggwuuruwrrgwbwrbbgrbb
gwurwbbwurbbwurubbwwgwwwrrrbuwrgubbwbgrbwwbugrggwu
wrwugwwugurwrwrurwurrgrugrubggwubwgbbguurbugrwubgwgww
gbggrguuwuwgrwgbrgugbwwbbwuwrbwugrguuwururbbgrbwwggu
ggruwrburubgubwurbbwbbwbwrbguubbuwwgwbbwrbbuwgrubrwg
rbwrubrbgwwrgguwwgwrbwuurubbrguwbwrrrubbrrubbruwubwggw
ubbrrubrbwrubbrwwgrbggbgurrwggwbggbrbrrbgurbrbur
bwwurruwugubwrgwrwuwbwbwugurggwbwurruggggbbbrwbggbg
wurgrugwugbuggbbrgrburgguwurgurrubguwrrgbuwwg
buwuwrrurruuruugggggbwurubbggrgwrgrwgwgwgu
bggrbbbgbubuuguwwgubgrgrburrrbwrbwrruwwbuwbwwbwgwgu
gwurbugurwbbbrbburwggruwgrwburruruwuugggggwuuwbur
rrbwgbbwrgwbwuwgwwuwbrubbwrrrubbgruggbggwgu
wrrbruuwubugggbubbubwbgbwwbrwbbgguwrwwwwgugggggwurggggu
gwgggbrrugrugbuugbbrugrbgugrwrbwbwrwbgwrubwubrwbbwguuruguw
wwgbgwruubrbugrwrbuuurbrgwrrbgugugbbrwbubbrrubgrbugw
rbbgwrgbgwgubwrguuugwgrbwurbwbbgwbrggurwugbgbbbuw
brgbgburgbrugbwrwgrrbgugbrwugbgbgwbrgwwwwgg
rgwbugburuwwrrgbgrbgbwrubrwwbgbubrubwurguwu
rugurrgrgrrwgwrbbubrbrwwwuwwwwuurwwwwubbbguwuwggwgu
ruggbwbgbbuwbugrubgugubgruggwrwwbbwgrwugwurwuuru
wbrrwgbwbrbbbgwrgubuuuwwgrgwrbwbggwwwugbwuwwr
rwbgwgwgrrbbbwgwurrrrbrugrbrgubrrwgwwwuwgwrwrbrwuwu
wuwrbgwrbbuguuurubwrrurwwgrugbrurgbrgrubrurrwwur
gugrurgugrwgwgwrwrrggrwgbwwuwurbrbbgbuwuubuggrwuuu
brwwwguwbgrubgrgugruwwrbrugggbggbggbgwrrrguug
buwuwugggwwwrgwrugubugbrugwrwuubgbbbwwbgrubb
wbrguugwrbwgwgggrggbrgurbggrugubbwrbubbwggwrbuubgrrgrwr
wrgrbwgwrbwrwgbrubwgwubbrgrguwrgrbuurgggggg
wbuuggwurbwgwguugbuuuwugrwbwwuuuggwbuuwwbbruubwwu
buwrgbruwbwwrgbbbuwrrrrrugbbrubbgwguuurbrrgrwuubgwguwbb
urbuguubguwuwrwwurwwuuwwbwguugbgbgbububwwbwrwgwugwgu
ggrgbrwrbwuurggbgbgrbugggwuubbwrgwrgbgwrrwgwgwuug
uwwubwurrwgggwbgrbbruuwruuwbgbrgbgrbrubgbwgwwubwgu
rrugububgrbwuguguwrrwwwrgwbwurggruwgbubbruwubuwgbgww
uwgwgwbuwgrbgrgugwwwrwwwbuuwguwwgwuggrwbrrruwwbuuw
bbrgwubwwuwbruuurguuwbgurwurgbgubgbrrbbwwur
bubwrgbuwbuwugbbuburbuwggrrbuwuwrbugbbgrurbwgu
ruubggwrgbubwbwugwrbubrrbrbrwgbwgbbuguwbrgurwgggbbbr
brrggwurbgrrrruugbubruwrrwggugwgwwrbggrwrbguggbbbru
buurwrwwuububbuwwuwwwbgwgubuugbrguugububbgggugbwgu
brwuguwwggwbuggurwbuwubwgurwruuwbrurgurwuwurggbbwurruugwbg
wrbrggrugurwgugwrggrguwrwugubwurwbrgrrbrbwgbrbuwuggbwbru
bbbgrbwwwurubrgwwwbwbrrbbrgrruggbwubgwuwurbugrburwgguurwgwgu
ggrrggwbrgguugbwbwugwrwuuruwubrbrbgwbbgrru
bwggwrbgrgrrwrgwrubggwwrgwwurbwrururubwuwbruwurwgwwuwu
urbrrugruuwbrwwrwurrwrrgbwgubuwwbwgggurrgugbwbrgbugwbggbwu
gwugbwrugrgbbwrrbwbwgbguwggrrurbbbbugrggbgb
brrgwrbwwbuurwuruwbwwwwrwbbbwggwgggugbguwuburr
ruuuwgbguurwgwugwggrwwrbbbwugrbururbwburwwruuwwrugrur
wrbuuwrwggwwrrbgwwrbuuggbgrugwrgugguruguwb
rbrrwwbuubgrrbuwurwwuwgwguubgrgrbubrwgugwrbgruburbrrug
gbwgugrbwbwgrwwbgbrrugwgruubwggbgruuwrwgbwrwrgbuw
rwgrbbbgwgubrbwuubrrubbrguubbuwbgrbguggwugurgbguwrrgbb
rwgbguwuuwgbrbrrgwgrrwuuuguuggbggggbwburugwurg
wgrggbbrbrrruwgguwggrgugbrrbrbwbugbwwrubbbbuwu
wrurbrubuuugugwggbugrubruwbburrrrwuuwgwuwggbbuguw
gbrrwbwruwrrbrruguuwgbwwbugrwwugwbrgubgrur
grrrgguwrrwwrwwgbbrgggwgbguwuuubbwugrrrugrggrb
uurgrwubwbrrgurrguuwrbgwrbrurwrugrgubwwgwbwgbrugbgwbuguwgu
bwbwwgbbgrwwbrbbbrgbrbwwwuruuubgrgguurbuuwgu
grggrwbwgggbrgugrwguwrubwbuwgurrruuwbgbrrgb
bbrruubuurbguubwuugrurbwrbgbwubwubwwrwguwug
uugbrugbgrbugguugwbwbgrgbuurwwbuubgrgrgbrw
wbgrbuuurbbruwwwgwrrbguugbuguggwwwuurruuurbbgwwrbgwg
ggrrbggbbgbgwrbgggrbbbrububuwrrbuwbbwrbgrgbgrwbb
bgwuguuubrwwuwgbbgbbbuurwwwrwwbrgbggrbbwguguwgu
rrbgwruwbbuubbuubrbggbugwwwgbgrwgugbubwbgbbbgbbrgug
rbwbrgbbggbburrrwguwwuwrugrgggggrwruuggrbrgubgwrwbrrubggwgu
guburwgburrgurggurgbgrwwwbuubbwwruwrubbrbbwrgwwrruubbwbu
uwbugwbuwrwurbrwrrrwrwwbrgrbbbwuwrrwrrrbbbwwrwrrbwgbrrgwg
bruwrgwrugwggrgrwgrrrwwgwwugbwurggwbrrwbgwgrgurru
gwuuruurwwguwugwurrgbuwuwwgrwgurgbbrgwurrwwg
wgrbrgurburugugbguwwgwbwwgggbuuugwgwrwbrrrbruburwrwwgwbbrb
uwggwbggwgggrgrbrubrbruubguuwgurggwbbrbbgrrbug
rurbgwgbwuwuwuuubwuguwrbwgbbrururruwbgwwbuwbrrwrrurwgg
ugwuuuurubbgbwrwgbuwrbbrwbwgwuugbrguggbubbggggubgrwuwrbbgg
wbbugbrbgbrruwguuruwwgwgwrguwubguuwurbgwbbguwrrrwwwburguuu
wuugrbbrrgurgbuuuruwbggrggbubwubbrgbuugrugwbgwguwrw
guuwwrbuuurwrrwrwrwrbuugwwbuuuuugugrgbguubrrbggbgu
rbwbbruuwwbwgwbwgugggbwwrwugguubrugubwgbbrgrbgu
bgrgbuugggbugwbbgwurgwguuuruubrubwbubwgwgwgurrgbubrguubr
rbggruugwbuwgugbuubugggwbrwuurgrrbwwbrurbgwbgguugbburgwgwg
guwuurbbwwbbuwwuwwggurguwuubuwwwgrugwrubgruurwgbwggb
gbrgbwwuggwuwgbgwbbgguwrwbwbwrwrwururbuwbgwgrrwrbuubwrrrbu
ggbbwgbbbrbwruggurwguubbwbguwguwgbrwrrruwubrurbuguwgurgu
bbwbwrugbwuwbwwbuugrgugugugrgwwuugwrurruwbgwwbwbwr
gbwwwuwrwwguwburwuggwbruuwbbrubgrbrwrgwrgrgugwgu
rrbwwbrrwgwruwwwrrgwubbugruwguggwwubrrbwwwwggg
urrrgwgggrrrurubwurgurwgugwgrugwbbwbwwgbbrwgurgwgwbubgwgu
rwgbwbrwwbgrbwggwbuuguuuwgbbubrgrggrwguwbrwrbrwrrwwurg
grbrwgbrwgwbwubgrbbgwrgrwuugwbuwuuwbwugrrwg
rgrurbbbggrrguburrwwugbgbbgbbbwuwbwrgwgwwbruuruww
wubbgwgbggwwggwrwubbrbwrwrbruburbgwwwurgguwgr
bbrbgbwrrbgwwwurggwgguwruwbuwbugbubbbbrwbggubuwuwgu
uwubbwwbrurwrrrwwurbgwwrubgugrbbgwbbbrwrrrgrbruubbbburrgg
rugwrbwugrgwwgwbbwguwbuwbugwwbugwwwurwbbguwgbgrwuwrggbgrr
rgwgwwwuwbgwbuuwubbuwbruwgugbbugbbwrbwggwbgbwurubbrrgbrw
urwwgrbbgbuwuubrubruburgugbgbwuurgguuwuwubwbuggbwbggwugwgw
guugrwbbwwbwbwbuguurubuwwwrrbggbrruwwwurwbbbrbbb
ggugbrwbgwrbrbbbrgguggwgrrggwgwrgruurgwurggwwgubgwgu
wruugbgugwwrgbwbrbbbgrubrwbgwwguwbbgubwrguwuuwubgur
bwuwubbugwgbrrwuuwrgbgbguwuurrbbwrwugwwwrbubgrrrwbw
buwrbrgwbgwurrrwguuurbrrbuuurwrgwubbgwbgggguruwbgbggb
uwbggrgwbubrbrwwwguguwrrugbbbugbbgwrrwwwgrwgbugurwrurr
ggurbuwrwgurrgurgbuwrguwbwbrugbgburwuwuuwuubgggwruubgubwgu
gwrrbbbgwbwuwgubbugguwurrwwbrugugwwrwbrgurrrwww
gwruwggwrubugwgubrruruurwrggbwgrubbuubgrruwgrburwbgrrbuwgu
gguugbgwrrbwwrrgrbrwuggrbwbgbgrwrbuwbbubwgubwuwubbg
rruburrrwguwrrgwwuuwwbrgwgrurwurwubrubuurbgbbggrgb
wbrgwrbgbrbwgwbuwurgrrruwbwrugwbbbgwbgwbruuuguwuwwbuguwrub
wwrgrgbuwbbbwwurgugrruuwwwbrrwuwugwwurwgrwurubguwwg
ruburgggurruugrubggwgugbuurgwbbrrggbwggwwrbbgrwb
wwggruwuwwguuwwrrgubgwgbwwbrrrwwuuggugwbuurub
gwrburbbgbrwugbwrbggrwwwwbrrgrrrurggwbbggbgbubgrrbuwrwu
wbuubrwbrgwwubrgrrggrrurwbbwrrgwbrguggwuwwugruw
ugbbuugguuwgwbubrwrwwrwgbbbwrwgburuwrbbuuwbw
uuuuwbwggrrbbwwrwgrwwbwrurrbruubwwwgbgrgrrwggwwuugbgrrb
gbbubwubwbgwubwwgruwbgrburbuwwbgwwgbwrwbwbrgwrrubwwbrug
rwbwwruwwwgurgurrgbgubuuguwbwrugbggrwurbbrbbrbuwwrrwww
wgwrubgwuubgwgwguguugggwwruurwwgguggbuugwbuuwrbr
wwgrwrrgrbbwwwbgbgbubuwrwrbbbrwrgrgguwgwwugggbbgbrbwrgug
urugwubwgubrwrbuubguggrbuuuuuwwurrgbrgbgbwwubruwuuwwwggugr
buwuburbrgugrubggbgbrburgwrgwwgbuuuuuwgbwbrbuugrwbbbwb
uuwgwwbwuurbbggbwrbwrbbruuururwgugwuuurwgrgrwbruwuwru
ugubbwgubrgwgwwurbuurwwrbrwggubbguwrggrubrrbuwuubbwbrbrb
grwwrrgwrubbwggwgwwuuuwwrwbbwbbguwubwgbrgbrgrgguugrrgrgw
wrbrgrgwrwbruruwuwurrbwgwwbrrrwwwwrgrbwgurgrwugwuwgu
uuguwwrbgguuwgubbwrwugbrwbbbrbugubbrbrgruugbggbwbrubwg
wwbwbbwugbggwbguwggwbgrgubgrbrrrgbrugrgwuggubbrrr
brgwbubggbrwbwuggububwbuuwgggrgggwgbwuwguwgwgu
gwbwuwuuwurwguggbrbbrrwubbrbrwuuwrbbbgrgurggrrwrg
ggugugbrgrrrwuurruuwrgbgbgugbbbrwuwbbgrggbwuggugugugb
bgwwurubbguruuuwbuuguwwbbuuggwgbbgrbbubgubruwbgbuwwurgu
uuguwgrrbubwrgruggubggwrgururbrruurwgrgbrgug
ggwubwbwwbwggguugurbwrrbwrrgwrgrgbubuwuurwgbruubbwgu
bwgbguwrgwubgrgbwuwgrggbwwrgbgwbruuwgguggu
wbgbuwrrggwgbubgrbuugrrrwrrwguurubuurbgbrb
wrbwbrurwrubugrrrbugrwugugrugbwuguubbrgrwwgbrruwbbwg
gbuguwgwwgwuggrbggwbrruuwubwrgwbrwgwguwrgbwgu
gggggbbururwbggwgwwrrguurwwgwugrrwuggbubrgrrugubgbugubwgu
wurbgwbuguwbbgubbgwbburbbrwbbubwrbrubgugbbugwuw
uugggbugbwwbrwuguwggrgwrbrgwwrugwgruruwgwubbbwwbbguuwugbr
brugggrwruuuggbgwguuurwubgwuuwbruguwwrgwgbugrrwbbrug
wurrrrbbbggrwurubbruurbrrbwwgrrrrgruubrrwwwr
rugugrwbubrgrwbwwbuugwurrwuuguugrwurwrbbbwrbg
rrurbgrgwrwuguggurbrbgwbgugwrbrugbggrugrrrggrw
ubwwwwbbguugrurbgrwwgruubggbrrwgbgwrwbrgbugbbbbugwbwbb
wwgubgrrruurgrguwrgwuwggbwbwruggrbgrbrbwgguruggwgwuurbbuu
ggguurwuuruguggrrwgrwurbwwbwwbwrbrugbgwrwugbruugbgg
urgbubgwbrwrgrbwgruguwugwbgrgugrgbwubrgrbwrr
uwbwbbbbrwggwrrggwbgbwrgugbrggbwuwgubrwbgbuuwugg
wwgbbgwrwrwrbgubgggbrbguguguubbrbbrurgbbgubbbbwgu
burwbbguggbwwubrbugbrwwbrgwgruwrrbuggugwgu
brrbrguwuwbrrrbuuubwwrbgbubugwwurwugrgrwurbugwwrbugbw
gburrrgwuwrbwugugrrrurwrrrbuugruurbbguggugubwgb
ruugrbbwbubuggbbuwgbbwgwurbrgrbgruwbrburggubrrwuburuugbur
wwbwrbwuwguguuuurwubrwbrburbggrugurwbrrrwwbgurwuwg
urggurrrgbbrgrwrwrbuuurbgwrugggrwbrwbgggrugg
gurrbgbbrugbwrgwwggrururbbgwgwwbwubgwrrbubwbuubggbrbrr
bbwwbgbrbwwrgwwrbgwbgugurugbugwubguwubruurru
wuurbgrrgrwurrguuwuurwbwubrbgwbbbbugrwwwwbbbwwgwgwru
uwgubbbwuwugwbrgwwguubwwugugwbubguugwgbuurgbrwbruuubuurruw
bbruwrwuubwbugbbrbgggbwbwbuwuuubrgugugwbwwrbuwgwuwgu
wgrgrbbgruwrgrwgbrwrwguggguwwwubgbwuwrgrbguwu
bwbrbbwggwrruuguwgwwgubrbgurrgburuuguuguuwggwwbu
ugrbrwugrwbwgbwbwbwrgbgugwurwwgrurrrugbwbggu
grwrwbuuwbbrbbbuwrwubbugbbbwwgbwgruwbgrgbwguwwbwuww
ugrgbwburbwbgrgubbuurwubrgrwubbrrruwubrugrwrwbggb
wwrwwrwrgurgggbrubuuuuurbbrgwrgggwgrwbuwrggruru
gwwbbrburbuuuguruubbbggwgrgrubwgruwwrbrgrgruugwrrww
ugwrwguggubrrwwurwwwbwbwbbwwwwwguubbwwurrgwwgwbwubwb
wburwbggrbgurbwubwubggubrwurguwbbbggbwrbbguwbwbwuurgbgg
rwwgggwwwbubgugbubuuwwrbbuwrwwgwggbbbugwbrgbwuuuuw
brggrwbbwrubburgwwrbburuwuugwrrwuuwgrrrbwwwgguubwwbbbbuwgu
wuwrbwuwbwrugbrwubbbgugbgwgwbubwuurbggwwrrgrbggbw
uwrrgrrwwugrburbbwbwbwbwuurgrgubbwwuwrgrwgbugg
gbuwgwrwbgbgrruwrgugwuwbgwruwrbgbrrwububbrbrrbgugr
bgbbbwwwwbbubwrgwbwrrbgggrwggwgwgbgrbbgggugwru
wwgwwbguuwrbwuuwugwrwbgrwbururbugrrrgwbuuwrwwuuu
brgruuuugrgwuuguwbbwgrwgbggbgrugrwwbbugrwwrrubwgu
wburbrwbwrbwrbrrgggurruuguggwuwbrgwbgbwgbrwubgubugbur
rgurgwgrubuuwwrugugbbggurbbgwwrrubgurwbwbbbrurburwrwwub
wguuuubwubwgwrwuwwuururbggbgwgbubwwrwrwuuwgwbbbrgr
uugubgbguwbggguuggrbwgwwrrguwuwbubwwrgggwgbwgrb
gbubrbggrwwgurbbbbbuwbbwggbuwbuwurrgruwwgub
buwrrwbuwwgwbuwuurguuwbwrbuugwwwuwgrrbubbrgrbubguruwgu
ubruwgrwbwuurrruwbbwwwgrbbbburgwwbbuuwrgwrguburwbuggguw
gwuuuuwgbbgbwgggubuugrbbwrrurbbrburrrgwgbwguwubwuww
rugugrbbwuggrgbbubggubbggbrgwrbrbgubbwgu
uuubbbggurgubgrbguuwwrgbrgrbbrbrubwguwbubwrgwwbugg
gbwrrgubbrwgbugbrrruwubwgrwurrwwurwgwrwbrguwrgwwbrwwuwgu
wwwbwugurwwguugrbwgruurwwrgguwuggwurugrggwguwg
ugbrwwbwwwuwwrgrwuwbuwbgwurubwuwuuwguwubwbburwrwubuw
grwgrggggbgwgbgbrwguugwrwbgrrurwbbwburgrwwbbwwgggrwwgugwgu
gbrbbgbwgburbbbrwbgbuuguuurrrrwwbggbgrubuuwwwwrb
brbugwubbrgbuubwbuguguwuugbrubgbrwwugbuwbgbwuwwbrgubrbwruu
rbwrwurbbwubwrgrwrggrwugbbuwburwuggwgwbgbwrgwbgw
brurwruuubwwruuwuwwwuggugrbruwbgwbugrrwurugrgubrggbwwr
gugrwgubbwbuugwgrgrrrgwbbrguwubruwugbugrbbruuurwgbgur
ggbrgubuwwururggrburuuguguurgubbrugurbwrggrrwbwgu
rwuugubrrurrbguuugguwwwugrrgwgbrguubgrwbrrwguwbw
uwuwrrruwrwwgrwgrbbwwwggwgubgrrrwggubuuuuuubrbbwgu
ruurrrgrugrgrgwwugrwwgrbuuguurgrbrbgrwbwgwu
buubbwwbwwrwbwwbgurgwbbrrgbwbwbuwwbwbggguburrbrrbwgurgu
bgrurgbrrurwwbbrrwbrrrwrgrwbbrugrwbwrrgubbubrrbrgbuuwrgww
rwbbwbgwbggwwgugrguwgbuwwubwuwwwwuwbugrwgrgguu
bggbubgugwbbrurrubwgwbwwwuubbrguuurwruruwrwwubuurr
buwuwbrrubbwuurwbrgwwwwrrgruwggruruggbrgwbwwwbwugrwgr
ubbuguurburrrwggwgbwuwwrgwurgruwwwwbwwgruwbugbuugrrggbu
ubuwrbwgwrbgugrwubbgrbwrggwrgrubbbbgurwrrwuubwbrgbbbbuggww
uruwwuubrbgubrurwbguwrugbwruggbbwwuwuggbrwuwbuggbrbrgrbr
uubuuruwrbbwguugwgubbwgwubbruggrgwrrgruuwuwbgwrrrgr
gwbububbgwbwgggwrwurugrrruwuwurgbrwbgbwuwuggwgbwuwbur
ruguuwwuurgwggbbwgggugugbbuuggwbwbbwgrruuubwrguwrruugwrbb
bwwrugwwrgwruubbwwgbwwrwuwubbwurrrubrwwwubbubugugbuwb
rrbwwggurwuuubgurbbwgbrbruuwbuuwwrbugggugw
rwggguuuwbwuwwubwuuurrubgrguwuwbrgbuwbgugbbbbrwuruuurgrw
uugubuwwwrwwuwguubgrrbrrrwrrgwubbwwbwrbgguguuguuwru
rwugwruubgurrwrbgubuwrwuwugrwggrwwwugbubugwbbwgwburbbubwu
bubbbrgrgbwgubwwruurgrbrbbwgbgrwgggwrbburubwb
brwgbbwrbruggwrrbuuuuuuuuwrgbwuggrrrugwuwgr
wggbubwgwruwrbgrguugwbruuggwbrrwbgwuwrgwwurgugwurbwbb
gwwbrgrrrwrbgwubrwgwrwbgbburgrrwbuwgwgrgwgubbgr
rurgrubwgwrrubburwurgrbrgurbrguwugwurrbbbbwwbbuw
wgwugubruuugbrgrgwgbrurwbgbwbrbuwgrwurrgruwgu
gguwggbrwwugugrbwrbrwgwwgruggurgurwrrrrwbwgu
wwgbrrgwwuwubbuuuggbgwgrwbbrgubwwuwurwrbubggrgguurgw
wrrrgwrubggugwgwburgbbwguguwwgurrwwgggrguguggrugwwwgu
ruwwbrburrrrwgurruwbwgruggrbwuwuurrgbuuwbgbg
rbugurbwgurwwrbwrruwgbgwwrwgwggrrguugrbrgwwgwwurubbrubrg
bbbbguuuwwurwbwbggbrgwwugwbugrugubwuuwggwbwuwwrgbrguuwr
buwubggbrwruburgbubwgbwwrwrgbwgwrwuuurrgrrwwbrrrgubb
ggurrgbrbggggrbgwbuwurwbrguugrbuurwrgubwwubbbbwrwuwbur
ubbwubgbrwwgrgbgrwbrruuurbwrwrgwbgrrgrbgrgwuuwwururrbr
rrugruuwgbwuwgwuwruuwwuuguurrwbwrgugbgwwubbg
gubuubrbbrrurrbrrwguguwrwgbbubrbuwwbuwwgubguburuggrgwr
wguwrwrwruwbbbbwuubwbguuwurwbubgwwwwrbuugww
bbggggggbuwgurgwurbubwubgbgburbwrrbrrrwbwubwwruwuwbggrrugg
ggwrgbwruubwwuurgbbwrgbbgwrubwgbrbbbggbrurgugbbwgbgrugu
ubuwugruwbrwwbbwbbuwwubgrbgbgggurrrrgbbgwbbwuu
rrgwwggwgurgurbbbwubuugbbbgwwrrwrburubgwgu
ugrgugbrgrwuugbuwgugrwrbwbugbwggwbwubgbruuuwbrrwrbwuu
urgwwubwuubruguwwgurgbwgubgggbbwruwrurwwgbuwrrrbwwuw
bgrgubruwrurggrbwuwbbwwugwburbubrrwurwubwrruuurgubrrgub
rgbrrrwwbbuwrbruuurggurubggwbbrrbwbbrbgwrbuwgbgg
rgguwggugruwwwbrbgrrbwugururguwuuubgruubbwwwu
bwwbrrwuurgrruwgrguwwbgrrwrbwuuurgggbrwgbuwbguuuwggwbrrgwgu
rbwwwrbubwggrugguugwwgwbuurburbrubuwgbururwgrgwwb
wwwgubbwbwbgwubrrgbubuwbbbgrrgrwwrbbuwbubrrguuugruwwruwwb
ubrbggrwgrwugwwgrugubrburgggbugwbggbburgugggwbugugguguguw
rrrgrgrwgbgwgrgwrurwuwgurrbwwwgbgrgwwbwbubrrubrru
wbwgrgbwbgwgbuugburrwburbuwrbwgburrgwuwrggwbwuwgbbbguwrbgr
rwgburgwgubuugurwbwbwbuburrrbburgwwwwguwgwwbwbbwwwuwbwgwug
rwbuuguuwrrgrwrrgruruuguwwwgbbruwbbwrbrguwgu
guwbggbgrbbbbuwrwguwguwgrwurrwrbuurrrgruwwurrw
wbwuuuggwbgrwggbrggwbwburgbbrwrrugbbrugurbgwgu
wrrubbwrrwbruruwggugwwgrrwugugrgrguuggrubrggugggbrwu
rugrgguuuubbuugbbrrwuuwgrbrgbgrbbrbugururrg
ugggrgrwgbgwbwwrrgggbwwgbgbwrwwgwubbbrbbbuuwgwbbubbbwubw
gwgwuwuuwgbuubbwwwrrurrbgbubuuguwwbrgwubuuwbgwwuwbg
rurggguuubuuwrbrgwgguurwgrwugruugwwggrbuuugwbwgu
gbburubbgbggrwubgrgrurbwgrrubuwrrbbgrgrwgg
wgrrgwurbguwgbuwrbrurruwrbgrrbrgggguugrbwgwrbwwbrgwgu
rgbwbrwguubrwwrwugbbbwugwurwwgurbbrgwwugbbbwgb
ruwwgugrgrgrwgrwrbrrggwurrrwubrrbbrbwubrbwgu
brbwrrrggrgrggbwbgubgrrugwgwuubrbwwurbwbru
wrbrwgbwbbguburgrrgwrbrwwurugruggwgrrrurggur
gggwrgwwbuwwbrbgbrbbgbbubbuggrgrggbwugugggrbub
urgbwrgbgwwrgbwurgggrwgbbgwbwgrwwuuuguggbrbggw
wwubrgbwrguwrbrurrwwwgrwrbrbrrbrrwwgbbuwwwbbbwbg
rrgugrbrbuwwwuuwwurgubgwbbruuggbbbruuwubur
urguwgrrrgbrrwbggbgurrrrrwggrggrrburrrgggbu
ruwgguwurbbrgbgwgrrubwbwurwrbwgburrbbgrgburgubwwgb
wggwubbrwwwububuugwbwbubrubuguwguwrbbrwbgwgurgu
uubggrubwgrgbrurgbuwubgbuuwugwbuururrururgggrurwwrrgrrgbgwgu
brrwrbrbggggrwrburbrurbuwuuguwbbrgrruwbugwwburuuugubwgu
gbwrruugrgwbgrbruwwgrurbgwwubgwwbbggubgrwubrrburrgwuw
uburgbbwrgrwurwbuwrrwbbbggrruwrugubruwbgwubggurbuwwbbuwgu
wwrwguuwubrbbruguuruugbwwwrbbuubbuuubbbgrgr
uuwgbbgguuggrwwrrrubbbbgurgrruuubwwugwgu
guggrgrbrburubbugbugrgrggggugwgwggrrwwgbbwgu
rbgbbwrbwggugurgubbwwwrggwgwuwgrbrrbgubbbbruw
uuuwgrrrubbrwrbggwgguubbwbrbrwbgrgwbubwggwubgrub
rurwruuwwgwrguwugruburbgbuugugwuubrbbwurgrbrbugwubr
urrruurwuwbbbwububwrgguwbrgrbuubgrwuguwurwrbubrugu
gugwgrrrbrrrgrrwwgrggbuggbwbwgbburbwwggguwrub
wguwwwgwggwwurrrguwuwbgrgbrgwugbwbwwggbugbggr
gwgrwrgwbbburggrbwwurrrgbguurrrgrbrugwgbwurwguwbgbgrbug
rbbrrrbuuurgugwgrrbuwrbrrurwuwgrrrgbugbwgu
urwgwbuuwrgwwrrggwwubbrbwguuwbwrggbbwwwwbwrrrwwgbwwurbrrg
wwbguurugruuwuubugbgrwgwwggrbubrggwrwruubwrgwub
ubgruruguugrwbwbuwbbwruubwgrrurwwruwugwbruuurrwwrrgruugw
grbubwruwubgugggrrgrbwgurbgwugwwggrrbrgrbuwbbbrbwgu
wrgrrubgggrurgwguurubwgggbwuwrrubrugbrgbrbggwgg
gwgbrgrrbbrgubgrubrwrwrugrgubrgruuguwrwubwwwrgbubwwggbbwgu
bwbwgbgwbwwbuuwbrubggggbugwgbgbuuwggrwuwrbr
wugrwurwgrbugrwrwrwrrgwwuugrrwgrgbgbuwgu
urbbubruuggrugwwrbrrguugguuwuuwuuubrbgbbggrgbug
rrugubrbbgbwrbggguugrbrrrbruugruuggrbgwbuuwuururugwruug
burwbgbgruwrurbrwuwrgurgrrbrbbguwwbbrwgbwbgwrwbruuwbgwgww
wbubuuwbrwuwwruggbbugbrrrgbgwguwwgrgurgwrugrguurrrrbbgrbbwgu
rbwrbubggwuubugbrubuurruguwrrwgubwrwwububwrgrguw
gbrgubrugbwrgwwwwrbugwwgwgwrbrgwuuggrubwrbrugwbbruubwgu
wbgrubbrgwgrbrbuuuubuugwubbugwbuggwrburgwugw
grwgrbgwwrubruuubburwgbwgugwugwwrbwbwwrguwbbubuuwguwr