Compare commits
	
		
			No commits in common. "54c84304aa4eb58afd5dae4f77e44ce61d307f77" and "eec175943e79efd88567f7a7b117661ac94d6fc9" have entirely different histories.
		
	
	
		
			54c84304aa
			...
			eec175943e
		
	
		
							
								
								
									
										140
									
								
								day12/input
									
									
									
									
									
								
							
							
						
						
									
										140
									
								
								day12/input
									
									
									
									
									
								
							@ -1,140 +0,0 @@
 | 
				
			|||||||
SSFFFFFFFFFFFFFFFFEEEZZZZRZZZZZZZZZZZKKKKKKKKKKKKKKKSSSSSSSSSSSSSKKKKKKKKKQDDDDDTTTTTTTTTTTTTTMMMMMMMMMWWWWWWWWWWYYWKKKKKKKKKKKKKKKKKKKKKKKK
 | 
					 | 
				
			||||||
FFFFFFFFFFFFFFFFFFFEEEZZZZZZZZZZZZZZZZKKKKKKKKKKKKKKSSSSSSSSSSSSSKKKKKXXXXXXXXXDDDTTTTTTTTTTMMMMMMMMMMMMWWWWWWWWWWWWKKKKKKKKKKKKKKKKSKKKKKKK
 | 
					 | 
				
			||||||
FFFFFFFFFFFFFFFFFFFFEEZZZZZZZZZZZZZZZKKKKKKKKKKKKKKKSSSSSSSSSSSSSKKKKKXXXXXXXXXDDQQTTTTTCTTTTMMMMMMMMMMKMWWWWWWWWWWWKKKKKKKKQKKKSSSSSSKKKKKK
 | 
					 | 
				
			||||||
FFFFFFFFFFFFFFFFFIIIIEEZZZZZZZZZZZZZZKKKKKKKKKKKKKSSSSSSSSSSSSSKKKKKKKXXXXXXXXXDDQQQTTTTCTTTTMMMMMMMMMMMMWWWWWWWWWWWKKKKKKKKQQQQSSSSSSSSKKKK
 | 
					 | 
				
			||||||
VVVFFFFFFFFFFFIIIIIIIEEZZZZZZZZZZZZZZKKKKKKKKKKKKKSSSSSHHHSHHSSKKKKKKDXXXXXXXXXDQQQQQTTTCCTTTMMMMMMMMMMMMMMWWWWWWWWWKKKKKMMKKQQQSSSSSSSSKSSK
 | 
					 | 
				
			||||||
VVVFFFFFFFFFFFFIIIIIIEZZZZZZZZZZZZZZZKKKKKKKKKKKKKKSSSSHHHHHSSSSKKKKKIXXXXXXXXXDQQQQTTTTCCTTMMMMMMMMMMMMMMMMWWWWWWKKKKMMMMMMQQQQSSSSSSSSKSSK
 | 
					 | 
				
			||||||
VVVVFAFFFFFFFFFIIIIIIIIZZZZZZZZZZZZZZKKKKKKKKKKKKKKKSSSSHHHSSSSSKKKKKIXXXXXXXXXDQQQQQTTTCTTMMMMMMMMMMMMMMMMWWWWWWWWWKWWMMMMQQQQQSSSSSSSSSSSK
 | 
					 | 
				
			||||||
VVVVFFFFFFFFFFFIIIIIIIIIIZZZZZZZZZZZKKKKKKKKKKKKKSKSSSSVSHHSSSSSSSSSKDXXXXXXXXXXXQQQQQQTCTTMMMMMMMMMMMMMMMMWWWWWWWWWWWWQQMQQQQQQQSSSSSSXSASK
 | 
					 | 
				
			||||||
VVVVVFFFFFFFFFFLLIIIQQIPPPPZZZZZZZZZKKKKKKKKKKKKKSSSVVVVSSSSSSPSSSSHDDXXXXXXXXXXXQQQVVTTTTTMMMMMMMMMMMXXXXXWWWWWWWWWWWWWQQQQQQQQQSSSSSXXSSKK
 | 
					 | 
				
			||||||
VVVVVFVFFFFFFAAIIIQQQPPPPPPZZZZZZZZZKKAKKKKKKKKKMUUSSWVVVVSSSSPSSSSHDDXXXXXXXXXXXSVQVVTTTTTMMMMMMMMMMMXXXXOWWWWWWWCWWIWQQQQQQQQQQQSSSSXXXSKK
 | 
					 | 
				
			||||||
VVVVVVVFFFFFFAKCIQQQPPPPPPEEZIZZZZZKKAAAKKKKKKKXUUSSUWVVVVSSPPPPESHHHDXXXXXXXXXXSSVVVVTTTTTTTMEMMMMXXXXXXOOZWWWWWWWIIIWWQQQQQQGGQQQXXXXXXXXX
 | 
					 | 
				
			||||||
VVVVVVVVFFFFAAKKKKQQQPPPPPPEEEEAAZZZZZAAAAKAAKJXUUSSUUVVVPPPPPPPESSHHDFXXXXXXXXXSSSVVVTTTTTATEEMMMMMMXXXXOOOOOOIWIIIIIIWWQQQQQYGXXXXXXXXXXXZ
 | 
					 | 
				
			||||||
VVVVVVVVVVFFAKKKKKPPPPPPPEEEEEEAAAZZAAAAAARRRRRRUUUUUUUVVVPPPPPMPPPHHHDDDDDDDDSSSSSSSSTTTTTTTEEEMEMMMMXXOOOOOOOIIIIIIIIWIIQQQGGGGGXXXXXXXZZZ
 | 
					 | 
				
			||||||
VVVVVVVVFFFAAKKKKKRRRPPEEEEEEEEEAAAAAAAAAARRRRRRJUUUUUUVVIPPPPPPPPPHHHHHDDDDDDSSSSSSSEEEEETEEEEEEEJJJJOOOOOOOOOIIIIIIIIWILQQEGGGGGXXXXXXXXZZ
 | 
					 | 
				
			||||||
VVVVVVVVJJJVAAAAAKRRRRREREEEEEEEEEEAAAAAARRRRRRRRRRUUUUIIPPPPPPPPPHHHHHHDDDDSSSSSSSESEEEEEEEEEEEEEJJJJOOOOOOOOOIIIIIIIIIIGGGGJGGGGGGXXXXXXZZ
 | 
					 | 
				
			||||||
VVVVVVVVVVVVXXXXAKRRRRRRREEEEEEEEEEAAARRRRRRRRRRRRRUUUUUIPPPPPPPQPPPHHHHDDDDSSSSSSSEEEEEEEEEEEPEPPPOJJOOOOOOOIIIIIIIIIIIIGGGGGGGGGGXXXXXXXZZ
 | 
					 | 
				
			||||||
AVVVVAVVVVVXXXXXXRRRRRRREEEEEEEEEAAAAAARRRRRRRRRRRRJJUUUPPPPPPQQQPPHHHHHHSSDDSSSSSEEUEEEEUUEEPPQQQQQQQOOOOOOOOIIIIIIIIIIIGGGGGGGGGGGGXXXHXZZ
 | 
					 | 
				
			||||||
AVVAAAAVVVVXXXRRRRRRRRRREEEEEEEEEAAAAAARRRRRRRRRRRRJJJJUPPPPPPQQQHHHHHHSSSSSSSSSSSEEUUUUUUUEPPPQQQQQQQOOOOOOIIIIIIIIIIIIIGGGGGGGGGGGGGXXXXXZ
 | 
					 | 
				
			||||||
AAVAAAAAVVVVXXXRRRRRRRREEEEEEEEEEAAAAARRRRRRRRRRRRRJJPJJJPPPPPQHQHHHHHHSSSSSSSSSSEEUUUUUUUUUUPPQQQQQQQOOOOOOOIIIIIIIIIIIIIGGGGGGGGGGGGXXXXZZ
 | 
					 | 
				
			||||||
AAAAAAXXXVVVXXXXXRRRRRRREEEEEEEEEAAARRRRRRRRRRRRRRRPPPJJJPPPPPHHHHHHHHSSSSSSSSSSSEEUUUUUUUUUUUPQQQQQQQOOOOOOOOIIIIIIIIIIGGGGGGGGGGGGGGGGGZZZ
 | 
					 | 
				
			||||||
AAAAAAAAXXXXXXXXXXRRRNNNNNEEEEEEEXXARRRRRRRRRRRRRRRPPPPJJHHIIIHHHHHHHHSSCSSSSSSSSSEUUUUUUUUUUUPQQQQQQQOOOOOOOOOOIIIIIIIIGGGGGGGGGGGGGGGGGZZZ
 | 
					 | 
				
			||||||
AAAAAAAXXXXXXXXXXRRRRNNNNNNEEEEEXXXARRRRRRRRRRRRRRRPPPPHHHIIIIIIHHHHHHHHSSSSSSSSSXUUUUUUUUUUUPPQQQQQQQQQQQQQQQOIILLIIIIIGRRGGGGGGGGGGGGGGZZZ
 | 
					 | 
				
			||||||
AAAAAAAAXXXXXXXXXXNNNNNNNNNEHHXXXXXXRRRRRRRRRRRRRRRPQPPHHHIIIIIHHHHHHHOGGSSSSSSSSXUUUUUUUUUEPPPQQQQQQQQQQQQQQQQQQQLLIIIIRRGGGGGGGGGGGZGZZZZZ
 | 
					 | 
				
			||||||
AAAAAAAAXXXXXXXPXXXNNNNNNNNHHHHXXXXXRRRRRRRRRRRRPJPPPPPPHIIIIIIUHHHHHHOGGGOXXXXXXXXXDDDUUUVPPPPQQQQQQQQQQQQQQQQQQQLLLLRRRLEEGZGGGGGGGZZZZZZZ
 | 
					 | 
				
			||||||
AAAAAAAAXXXXXXXXAANNNNNNNNNNNNNNXXXAAJQQQQRRRRRRPPPPPPPPPPDIIUIUOXHHWOOGOGOXXXXXXXXXDDDDUUVVPPPQQQQQQQQQQQQQQQQQQQLLLLLLLLLGGZGZZGGTTZZZZZZZ
 | 
					 | 
				
			||||||
AAAAAAAAAXXXXXXXAAANNNNNNNNNNNAXXXXAAAQQQQRRRRRRPPPPPPPPPPDIIUUUOOGHHEOOOOOXXXXXXXXXXXXDVVXPPPQQQQQQQQQQQQQQQQQQQQLLLLLLLLLLLZZZZGGZZZZZZZZZ
 | 
					 | 
				
			||||||
AAAAAAAAAAAAXOXWNNNNNNNNNNNNNAAXXXAAQQQQQQRRRRRRPPPPZPPPPPPZOOUUOOOOEEOOOOOXXXOXOOXXXXXDVXXPPPQQQQQQQQQQQQQQQQQQQQLLLLLLLLLLLZZZZGZZZZZZZZZZ
 | 
					 | 
				
			||||||
AAAAAAAAAAAAAWWWWNNNNNNNNNNNNNAAXXXAAQQQDDRRRRRRPPPZZZZZZZZZOOUOOOOOOOOOOOOOOOOOOXXXXXXXXXXZPPQQQQQQQQQQCCCYCCCCHLLLLLLLLLLLLZZZZZZZZZZZZZZZ
 | 
					 | 
				
			||||||
AAAAAAAAAAAWWWWWWNNNNNNNNNNNNAAAAAAAHDDQQZRRRZPMPPPZZZZZZZOOOOOOOOOJJOOOOOOOOOOOOXXXXXXXXXZZZZQQQQQQQQQQCGCCCCCCCCCLLLLLLLLLLLZZZZZZZZZZZZZZ
 | 
					 | 
				
			||||||
AAAAAAAAAAAWWWWWNNNNNNNNNNNNAAVAAAAAHDDDDZRRRZZZPPPZZZZZZZFFFFFFOOJJJJOOOOOOOOOOOXXXXXXXXXZZZZPPPRRRPOOFFCCCCCCCCLLLLLLLLLLLLLZZZZZZZZZZZZZZ
 | 
					 | 
				
			||||||
AAAAAAAAWAWWWWWWNNNNNNNNNNNNANVVVVHHHDDZZZRRRZZZPPZZUUZZZFFFFFFJJJJJJJJOOOOOOOOOOXXXXXXXXZZZPPPPRRRRRLOLLCCCCCCCCCCLLLLLLLLLZZZZZZZZZZZZZZBB
 | 
					 | 
				
			||||||
AAAAAAAAWWWWWWWWWNDDNNNNNNNNNNVVVHHHHHHXXXZZZZZZZPZZZUZZZFFFFFFJJJJJJJJOOOOOOOOOXXXXZXZZZZZZZPPZRRRRRLOLCCCCCCCCCCCLLLLLLLLLZZZZZZZZZZZZZBBE
 | 
					 | 
				
			||||||
AAAAVAAAWWWWWWWWWNDDNWNNNNNVVVVVKKKHHHXXXXZZZZZTZZZUUUUUUFFFFFFJFJJJJJJOOOOOOOOXXXPXZZZZZZZZZZZZRRRRRLLLLCCCCCCCCCLLLLLLLELLZZZZZZZZZZZZBBBB
 | 
					 | 
				
			||||||
AAAVVVAAAWWWWWWWWNDDNLNNNNLVVVVVKKKHXXXXXTTTTTTTTUUPUUUUUUFFFFFFFFJJJJJJJMSOOZXXXXXZZZZZZZZZZZZRRRRRRRLLLCFCCCCCCCCCLLLLLEEZZZZZZZZZZZZZZBBB
 | 
					 | 
				
			||||||
AAVVVAAWWWWWWWWWWWLLLLINLLLVVVVVKVVXXXTTTTTTTTTTUUUUUUUUUVVVFFFJFFJJJJJJMMMMOZZXXXZZZZZZZZZZZUZRRRRRLLLLLCCCCCCCCCCLLLLLLEEEZZZZZZZZZZZBBBBB
 | 
					 | 
				
			||||||
AAAVVVVVVWWVVWWWWWLLLLLLLLLVVVVVVVXXXXTTTTTTTTTUUUUUUUUUVVVVJFJJJJJJJJJMMMMMMZZZZZZZZZZZZZZZZUZZZRRLLLLLLLLLCCCCCCCCCLLLLLLEZZZZZZZZZZBBBBBB
 | 
					 | 
				
			||||||
FFVVVVVVVVWVWWWWWLLLLLLLLLLVVVVVVVVXXTTTFTTTTTTUUUUUUUUVVVJJJJJJJJJJJAMMMMMMMMMZZZZZZZZZZZZUUUUZZZRRLLLLLLLLLLCCCCCFCLLLLLLEEEEGGGZZZZBBBBBB
 | 
					 | 
				
			||||||
FFFFFVVVVVVVVWWWWLLLLLLLLLLLVVVVVVVTTKTTTTTTTTTUUUUUUUUUVVJJJJJJJJJJJAMMMMMMMMZZZZZZZZZZZZUUUUUZZZRLLLLLLLLLLLLCCLLLLLLLLLLEGEGRRGGZBBBBBBBB
 | 
					 | 
				
			||||||
VVFFVVVVVVVVVWWJLLLLLLLLLLLLVVVVVVVVTTTTTTTTTTTTNUUUUUUUVVJJJJJJJJAAAAAAMMMMMMMZZZZZZZZZZUUUUUUULLLLLLLLLLLLLLLLLLLLLLLLLIIGGGGRRGGGBBBBBBBB
 | 
					 | 
				
			||||||
VVFFFVVVVJJJJWJJLLLLLLLLLLLLVPPVVYYYTTTTTTTTTTTTNUUUUUUUVVJJJJBIBBAAAAAMMMMMMMPZZZZZZZZZZZZUUUUMLLLLLLLLLLLLLLLLTLLLLNNNNIIGGGGGGGGGBBGBBBBB
 | 
					 | 
				
			||||||
VFFVVVVVJJJJJJJJJMLLLLLLLLPPPPPPPYYTTTTTTTTTTTTTTOUUUUUUVVVBJJBBBBMAAAAMMMMMMMMZZZZZZZZZZZZUUUUMMLLLLLLLLLTLLLTTTLLLLNNNANGGGGGGGGGGGGGBBBBB
 | 
					 | 
				
			||||||
VVVVVVVVVJJJJJJJJJUULLLLLLPPPPPPPYYYTTTTTTTTTETTOOOOOUVUVVVBBBBBBMMMMMMMMMMMMMMZZZZZZZZZZZZRZZMMMMMLLLLLLLTTTTTTTLLLTNNNNNNGGGGGGGGGGHGBBBBB
 | 
					 | 
				
			||||||
VVVVVVVVJJJJJJJJJJUUZLLZZLPPPPPDPPZATTTTTTTTTTTTTOOOOVVVVVVBBBBBBBMMMMMMMMMMQQQQZZZZZZZZZZZZZZZMMMMMLLLTTTTTTTTTLLNLNNNNNNGGGGGGGGGGGGGGBBBB
 | 
					 | 
				
			||||||
VVVVVVVVVPJJJJUGZZZZZZZZZZPPPPPPPPPAAAATTTTTTTYYYOOOOVVVVVVBBBBBBBMMMMMMMMMMQQQQZZZZZZZZZZZZZZZMMMMMMMMMMTTTTTTTLNNNNNNNNNNNGGGGGGGGGGGGBBBB
 | 
					 | 
				
			||||||
VPPPPPPPVPKKKGGGGZZZZZZZZZZPPPPPPPPAAAAAAATTTTYOOOOOVVBVVVVBBBBBBBBBBBMMMMMMQQQQZZZZZZZZZZZZZZZZMMMMMMMMMTTTTTTTTLLNNNNNNNNNGGGGGGGGGGGGBBBB
 | 
					 | 
				
			||||||
VPPPPPPPPPKGKGGGGZZZZZZZZZZPPPPPPPPPPPPAAATTTTTTJOOOVBBBVVBBBBBBBBJBBBMMMMMMQQQQZZZZZZZZZZZZZZZZZMMMMMJMMTTTTTTPNLNNNNNNNNGGGGGGGGGGGGGGGGBB
 | 
					 | 
				
			||||||
VPPPPPPPPKKGGGGGGZZZZZZZZZZPPPPPPPPPPPPAAAAAAATHHOOVVBBBBBBBBBBBBBBBBMMMMMMMQQQQQZZQQQQQQZZZZZZZZMJJJJJMMMMMTYTPNNNNNNNNNNNGGGGGGGGGAGGGGBBB
 | 
					 | 
				
			||||||
VPPPPPPPPPPGGGGGGGZZZZZZZZZZZPPPPPPPPPAAAAAAHHHHHOOBBBBBBBBBBBBBBBHHHMMMMMMSQQQQQZZQQQQQQZZZZZZZZZZZMJJJMMTTTYYNNNNNNNNNJJNUGGGGGGGAAAGGGBBB
 | 
					 | 
				
			||||||
QWWPPPPPPPPGGGGGGGZZZZZZZPPPPPPPPPPPPPPPAAAAHHHHHBBBBBBBBBBBBBBBBBHHHMHMMMMMQQQQQZZQQQQQQZZZZZZZZZZZZJJJMJYYYYYYYNNNNNNKKKUUGGGGKGAAAAGGOBBB
 | 
					 | 
				
			||||||
QPPPPPPPPPPGGGGGGGGZZZZZPPPPPPPPPPPHPHHHHAAAAHHHHHBRRRBBBBBBBBBHHBHHHHHHMSSSQQQQQBZQQQQQQZZZZZZZZZZJJJJJJJYYYYYYYFFNNNNKKKUUGGGOKGGOAAAOOOBB
 | 
					 | 
				
			||||||
QPPPPPPPPPPPBAAAGGGZPOZPPPPPPPPPPPHHHHHHHAAAAHHHHHHRRRRRBBBBBBBBHHHHHHMMMSSQQQQQQQQQQQQQQQZZZZZZZZJJJJJJJJYYYYYFFFFNFFIKKKKKKZGOKKOOAAAAOOOO
 | 
					 | 
				
			||||||
QQPPPPPPPPPAAAAAAAGZPPPPPPCPPPPPPPPPHHHHHHHHHHMHHHRRRRRWRBBBBBBBHHHHHHIIMMMQQQQQQQQQQQQQQQZZZZZZJJJJJJJJJJJYZZZFFFFFFFKKKKKKKZKKKOOOAAAAOOOO
 | 
					 | 
				
			||||||
QQPXPPPPPPPAAAAAAGGGPPPPCCCPPPPPPPPPPPPHHHHHMMMMMRRRRRRWRDDDDDDHHHHHHIIIIMMQQQQQQQQQQQQQQQQQQQZZJJJJJJJTJJZYZZZZZFFFFZZKKKKKKKKKKKOAAAAOOOOO
 | 
					 | 
				
			||||||
QQPPPPPPAAAAAAAAAAGGPOOPCCCPPPPPPPPPPPPPPHHHMMMMMMRRRRQQQDDDDDDHHHHHHIIIMMMQQQQQQQQQQQQQQQQQQQZZJJJJJJJJYYZZZZZZZFFFFZZKKKKKKKKKKKKKKKOOOOOO
 | 
					 | 
				
			||||||
QQPQPPPBAAAAAAAAADAOOOOCCCEPPPPPPPPPPPPPHHHMMMMMRRRRRRQQQDDDDDHHHHDGHIMMMMMMMXXXSSQQQQQQQQQQQQJJJJJJJJJJYZZZZZZZZZZZFZZKKKKKKKKKKKKKKEEOOOOO
 | 
					 | 
				
			||||||
QQQQPPPPAAAAAAAAAAAOOOCCCCECCPAPAPPPPPPPHHMMMMMMMMRRDDQQQDDDDDHDDDDDIIIIMMMMMIXXSSQQQQQQQQQQQQJJJJJJJJYYYYZZZZZZZZZZZZZKKKKKKKKKKKKKREEEOOOO
 | 
					 | 
				
			||||||
QQQQQPPPAAAAAAAAAACCCOCCCCCCPPAAAPAPPPPFFMMMMMMMMMMDDDQQQDDDDDDDDDDIIDIIMIMMMIXXXXSSZZZQQQQQQQJJJJJJJJYYYYZZZZZZZZZZZZZZZKKKKKKKKKKKEEEEEOOO
 | 
					 | 
				
			||||||
QQQQQGPPPAAAAAAAAAACCCCCCCCCCBPPPPFFFFFFMMMMMMMMMMMMDDQQQDDDDDDDDDDDDDDIIIIIIIXXXXUSZZZQQQQQQQJJJJJJJJJJJYZZZZZZZZZZZZZZZKKKKKKKKKKKEEEEEOOO
 | 
					 | 
				
			||||||
QGGGGGPAAAAAAAAACCCCCCCCCCCCCCIIPPPFFFFFFFMMMMMMMMMMDQQQQLLLDDDDDDDDDDDDIIIIIXXXXXXZZZZZZZZZJJJJJJJJJJJJYYYZZZZZZZZZZZZZKKKKKKKKKKKKKEEEOOOO
 | 
					 | 
				
			||||||
QQQGGGPAAAAAAACCCCCCCCCCCCCCCCCIIFFFFFFFMMMMMMMMMMMMMQQQQLLDDDDDDDGDDSOOOIIIXXXXXXXXXXXZZZJJJJJJJJJJJJFFWWYZZZZZZZZZZEEEKKKKKKKKKKKKKEEEOOOO
 | 
					 | 
				
			||||||
QQGGGGGGGAAAAACCCCCCCCCCCCCCCCIIIFFFFFFFFMMRRMMQQQQQQQQQQLLLDDLLDGGGDSOOOOXIXXXXXXXXXXXXKKJJJJJJJWNWWWWWWYAAAAZZZZZEEEEEEEKAKKKKKKOKEEEEEEOO
 | 
					 | 
				
			||||||
QQGGGGGGAAAAAAAACCCCCCCCCCCCCCIIIFFFFFFFFMMAAJJQQQQQQQQQQLLLDDLDDGGYOOOOFXXXXXXXXXXXXXXZKJJJJBJTJWWWWWWWWYAAAAZZZZZZEEEEEEKEEOOOOKOKEOEEOOOO
 | 
					 | 
				
			||||||
QQGGGGGGGGGGAAAACCCCCCCCCCCIIIIIIIFFFFFFMMMAAAAQQQQQQQQQLLLLDDLLGGGGGOOOOXXXXXXXXXXXXXXZKJJJJBWWWWWWWWWWWWAAAAVVVZEEEEEEEEEEEOOOOOOOOOOOOOOO
 | 
					 | 
				
			||||||
QQQGGGGGGGAAAAACCOCCCOOOOOCCIIIIIFFFFFFFFFFAAAAQQQQQQQQQLLLLLLLGGGGGGOOOOOXXXXXXXXXXXXXKKKKKJBWWWWWWWWWWWWAAAAVVVEEEEEEEEEEEOOOOOOOOOOOOOOOO
 | 
					 | 
				
			||||||
QQQQGAGGXGAAAAAOOOOOCOOOOOCIIIIIIIFFFFFFFFFAAAAQQQQQQQQQLLLLLNNGGGGGOOOOOOXXXXXXXXXXXXXEKKKKKKKWWWWWWWWWAAAAAAVVVEEEEEEEEEEEOOOOOOOOOOOOOOOJ
 | 
					 | 
				
			||||||
QQQQQGGGAAAAAAAOOOOOOOOOORCIIIIIIIIIFFFFFFHHAAAQQQQQQQQQQLLLLNGGGGGOOOOOOOXFXXXXXXXXKKKKKKKKKKKKWWWWWWWWAAAAAAVAVEEEEEEEEEEOOOOOOOOOOOOOOJJJ
 | 
					 | 
				
			||||||
QQQQUUUUUUAAAAOOOOOOOOOOOOCIIIVVIIIIFFFFFFFHASAQQQQQQQQQQLLLLNGGGGGGOOOOOOXXXXXXXXXXXKKKKKKKKKKKWWWWWWWWAAAAAAVVVEEEEEEEEEEOOOOOOOOOOOOOJJJJ
 | 
					 | 
				
			||||||
QQQQQUEUUUAAAOOOOOOOOOOOOOOIIVVIIIIIFVFYFFSSSSSQQQQQQQQQQLLLLGGGGGGGGOOOOOOXXXNXNXXXXKKKKKKKKKKWKWWWWWWWAAAAAAVVVVEEEEEEEEEEOOOOOOOOOOOJJJJJ
 | 
					 | 
				
			||||||
QQQQQEEEEUUAAOOOOOOOOOOOOOOIIVVVIIIIIOOOSSSSSSIQQQQQQQQQQLLLLGGGGGGGGOOOOOOOXXNNNXXXXKKKKKKKKKKKKKWWWWWWAAAAAAWKKVKKEEEEEEEEOOOOOOOOOOOJJJJJ
 | 
					 | 
				
			||||||
QQQQQEEEEUUEEOOOOOOOOWZZOOOVVVVVVVVIIOOOOSSSSSSQQQQQQQQQRRLLLLUGGGGGGOOOOOOONNNNNXXONNKKKKKKKKKKKKKWWWWWAAAAAAKKKVKKEEEEEEEEOOOOOOOOOOJJJJJJ
 | 
					 | 
				
			||||||
QQQQQEEEEEEEEOOOOOOOSWZWWWVVVVVVVVYIOOOOSSSSSSSQQQQQQQQQLLLLLLLLLGGGGOOOOOOOANNNNNNNNNKKKKKKKKKKKKWWWWWWAAAAKWKKKKKEEEEEEEEEOOOOOOOOOOOJJJJJ
 | 
					 | 
				
			||||||
QQQQEEEEEEEEEBOOOOOOOWWWWWVVVVVVVVYYYVOOOOSSSSSQQQQQQQQQLLLLLLLLLAAGHOOONNNNNNNNNNNNNUKKKKKKKKKKKZWZWZZWAAAAKKKKKFKKEEEEEEEIOOOOOOOOOOOJJJJJ
 | 
					 | 
				
			||||||
QQQQQEEEEEEEEWWWWOOOWWWWWWVVVVVVVVYYYYOOYOOOOSTQQQQQQLLLLLLLLLLLLAGGHHHONNNNNNNNNNNNNUUKKKKKKKKKZZZZZZZZAAAAKKKKKFEEEEEEEEEEOOOOOOOOOOOOJJJJ
 | 
					 | 
				
			||||||
QQQQEEEEEEEEEWWWWWWWWWWWWWVVVVVVVVYYYOOJYOOOOSSTTTTTLLLLLLLLLLLLLLLLHHHOHHHNNNNNNNNNNUUKKKKKKKKYYYYYZZZZAAAAKFFKKFFFEEEEEEEBBOOOOOOOOOOJJJJJ
 | 
					 | 
				
			||||||
QQEEEEEEEEEEWWWWWWWWWWWWWWVVVVVVVYYYYOYYYYYOOOOOOOTTTLLLLLLLLLLLLLLLHHHHHHNNNNNNNNNNNNKKKKKKKKKYYYYYZZZZZZKKKFFFFFFFFEDDDDDOOKOOOTOOOKJJJJJJ
 | 
					 | 
				
			||||||
QQQEEOEEEEEEWWWWWWWWWWWWWWWVVVVVYOYYYYYYYYYYOOJOOOOTTLLLLLLLLLLLLLLLHHHHHHHNNNNNNNNNNNNKKKKKEKZYYYYYZZZZZHKKKFFNFFFFFODDDDOOOOOOOTOOKKJJJJJJ
 | 
					 | 
				
			||||||
QQQQQEEEEEEWWWWWWWWWWWWWWWPPPVPVYYYYYYYYYYYJJOJJOOOTTTTLLLLLLHHLLLHHHHHHHHJNNNNNNNNNNNKKKKKKZZZYYYYYZZHHHHHKKKFFFFFFFDDDDDDOOOOOOTTJJKJJJJJJ
 | 
					 | 
				
			||||||
QQQOQQEEEEWWWWWWWWWWWWWWWWWWPPPPPYYYYYYYYYJJJJJTTTTTTTTWWWHHHHHHLHHHHHIIIHJBJGNNNNNNNSKKKKKKZZZYYYYYZZZZHHHHHFFFFFFFFDDDDDDUOOOOOOTJJJJJJJJJ
 | 
					 | 
				
			||||||
QOOOOOOEEEWWWWWWWWWWWWWWWWWPPPPPPYYYYYYYYYYYYJJJJTTTTTTWWOHHHHHHHHHHJJIIIJJJJNNNNNNNNJJJCCKKZZZZZZZZKZHHHHHFFFFFFFFFFDDDDLLLLOOOOOJJJJJJJJJJ
 | 
					 | 
				
			||||||
QOPOOOOOWWWWWWWWWWWWWWWWWWPPPPPPPPYYYYYYYYYYNNNJTTTTTTTWWHHHHHHHHHHHJJIIIJJJJJNNNNNNNJJJJJJWZZZZZZZZZZZHHHHHHFFFFFFFFDLLLLLLLLOOOOOJJJJJJJJJ
 | 
					 | 
				
			||||||
QOOOOOOEEEEEWWVWBBWWWWWWWPPPPPPPPPPYYYYYYYYYYNNTTTHHHTTWWHHHHHHHHHHHJJIIIJJJJJWNNNNNNJJJJJJZZZZZZZZZZZZHHHHHFFFFFFFFFFLLLLLLLLOOOOJJJJJJJJVV
 | 
					 | 
				
			||||||
OOOOOOOOEEEWWWVWBBBWWPPPPPPPPPPPPPPYYYYYYYYYTTTTTTHHHHHWWHHHHHHHTHHHJJIIIJJJJJJNNNNJNJJJJJJJJZZZZZZHZZHHHHHHFFFFFFFFFFLLLLLLLLOOJJJJJJJJJJVV
 | 
					 | 
				
			||||||
OOOOOOOOEEEWWWVVVBBBBBPPPPPPPPPPPPPYYYYYYTYTTTTTTTVHHHHHHHHHHHHHHHHJJJIIIJJJJJJIVINJJJJJJJJJBBZZZHHHHHHHHHHHHFFFFFFFFFLLLUUULLOOOJJJJJJJJJVV
 | 
					 | 
				
			||||||
SOOOOOOSZZZZVVVBBBBBBBUPPPPPPPPPPPPTTTYYYTYYTTTTTTTGGGGGHHHHHHHHHHSSHHHHHJJGJJJIIIIZJJJJJJJJBBZZHHHHHHHHHHHHHFFFFFFFFFLLLUUULLOOOOJJJJJTTTVV
 | 
					 | 
				
			||||||
SSSSSSSSSSSZZZZNBBBBBUUPUPPPPPPPPITTTYYTTTYTTTTTTTTGGGGGGHHHHHHHHHHHHHHVHJEJJJIIIIIZJJJJJJNJJHHHHHHHHHHHHHHHFFFFFFFFFFUUUUUULOOOOOOOOVKVVVVV
 | 
					 | 
				
			||||||
SSSSSSSSSSZZZZZZBBBBBBUUUPPPPPPPPITTTTTTTTTTTTTTXXXXXXGGGGGHHHHHHHHHHHHIJJJJIIIIIIIIEEJJJNNNHHHHHHHHHHHHHHHHHFFIIIIIFIUUUUUULOOORROOOVVCVVVV
 | 
					 | 
				
			||||||
SSSSSSSZZZZZZZZZZBBBBBUUUUUPUUVVPPPTTTTTTTTTTTTTXXXXXXGGGQGHHHHHHHHHCHHIIJJJIIIIIIIIEEEJNNNNHHHHHHHHHHHHHHHHHFFIIIIIIIUUUUUULORRRRROOVVVVVVV
 | 
					 | 
				
			||||||
SSSSSSZZZZZZZZZZZBBBBUUUUUUUUUUVPZVTTTTTTTTTTTTTXXXXXXGGGGGHHHHHHHHHCCIIIJIIIIIIIIIIEJJJJNNNXXXXXHHHHHHXHHHHHHFIIIIIIIUUUUUULCCCCCVVVVVVVVVV
 | 
					 | 
				
			||||||
SSSSZZZZZZZZZZZZBBBBBBBUUUUVVVVVPVVVTTTTTTTTTTTTXXXXXXGGGGGHPHHPHCHCCCIIIIIIIIIIIIIIJJJJJNNNXXXDHHHHHHHXHHHHIEEEIIIIIIUUUUUUCCCCCCVVEVVVVVVV
 | 
					 | 
				
			||||||
SSSZZZZZZZZZZZZBBBBBBBUUUUUVVVVVVVVVTTTTTTTTTTTTTXXXXGGGGUGUPPPPCCCCCCIIIIIIIIJIJJJJJJJJNNXXXXXXHHHHHHXXXHHXIEIIIIIIIIUUUUUUCCCCCCCCVVVVVVVV
 | 
					 | 
				
			||||||
SSSSSZZZZZZZZZYBBBBBBBUUEUEVVVVVVVVVVVOTTTTTTTTTXXXXXXXGGUUUPPPPPPPCCCIIIIIIIIJJJJJJJJJJJNNXXXXHHHHHXXXXXXXXIIIIIIIIIIUUUUUUCCCCCCCCCCCCVVVV
 | 
					 | 
				
			||||||
SSSSSSZZZZZZZDYYBBBBBBBEEEEVVVVVVVVVVVVJJTTTTTPPXXXXXXXGUUUUPPPPPPPCCIIIIXXIIIJJJJJJJJJJJJXXXXXXXXXXXPXXXPPXIIIIIIIIIIUUUUUUCCCCCCCCCCCCVVVV
 | 
					 | 
				
			||||||
SSSSSSZZZZZZYYYYYBSSBBBBEEEEVVVVVVVVVVVVJJTJJPPPXXXXXXXGUUUPPPPPPPPPPXXIXXXXIIJJJJJJJJJJJJXXXXXXXXXXXPPPPPPXPPPIIIIIIIUUUUUUCCCCCCCCCCCCVVVV
 | 
					 | 
				
			||||||
SSSSSSSSZZZZZYYSSSSIBBBBEEEEVVVVVVVVVVVVJJJJJJJPXXXXXXXUUUUUPPPPPPPPPYXXXXXIIIJJJJJJJJJJJJFFXXXXXXXPPPSPPPPPPPPHIIIIIIRRRRCCCCCCCCCCCCCCVVVV
 | 
					 | 
				
			||||||
SSSSYYYZZZZYZYYYSSSSSSEEEEEEVVVVVVVVVVVJJJJJJJJJXXXXXXXUUUUUPPPPPPPPPXXXXXXXIIIJIAJJJJJJJJFFXXXXXXXPPPPPPPPPPHHHIIINIIRRPRCCCCCCCCCCCCCCVVVV
 | 
					 | 
				
			||||||
SSYSYYYYYYYYYYYYYSNEEEEEEEEEVVVVVVVVHHVJJJJJJJJXXXXXXXXUUUUPPPPPPPPXXXXXXXXIIIIIIJJJJJJJJFFFFXXXXXPPPPPPPPPQPHHHINNNNNRRPPCCCCCCCCCCCCCCVVVV
 | 
					 | 
				
			||||||
SSYYYYYYYYYYYYYYYNNEEEESEEEEEVVVVVVHHHHJJJJJXXXXXXXXXXXGUUUUPPPPPPPDDXXXXXIIIIIIIJJJJJJJJFFFFXXCXXXPPPPPPPPPPPPHINNNNNNRPPAAAAAAACCCCCCCVVVD
 | 
					 | 
				
			||||||
YYYYYYYYYYYYYYYNNNEEEEEEEEEEEVVVVVVHHHHHJJJJXXXXXXXXXXXGGUUUPPPPPPPDDDXXXXIIIIIIOOJJJOOJOYYYFXYCXXXJPPPPPPPPPPPPPNNNNNNNPPPAAAAAACCCCCCCVVVD
 | 
					 | 
				
			||||||
YYYYYYYYYYYYYYYNNENEEEEEEEEEEVVVVVHHHHHHJJJJXXXXXXXXUUUUGUUUUUPPKKKDDDDDXXIIIIIOOOOOOOOOOYYYYYYXXXXXPPPPPPPPPPPPNNNNNNNNNPAAAAAAACCCCCCCNVVD
 | 
					 | 
				
			||||||
YWWYYUYYYVYYYYYEEEEEEEEEEJEEVVVVVHHHHHHHJJJJXXXXXXXXGGGGGGGUGUUPPKKKKDDDDIIIIIIOOOOOOOOOOYYYYYYBBBBEEEEEEEEEEPPPNNNNNNNNNNAAAAAAACCCCCCCNNNN
 | 
					 | 
				
			||||||
WWWWYVTTVVVVXXEEEEEEEEEEEJJEEVSVVVHHHHHHJJJJXXXXXXXXMGGGGGUUGGGGKKKKWDDDDDDIIIAOOOOOOOOOYYYYYYYBBBBEEEEEEEEEEPPPPNNNNNNNVNAAAAAAAAANNNNNNNNN
 | 
					 | 
				
			||||||
WQWWYVTVVVVVEEEEEEEEEEEEEEJJJSSSSVSSSHSSSSJJXXXXXXXXGGGGGGGGGGGGKKKKWWDDDDIIIIIOOOOOOOYYYYYYYYYBBBBEEEEEEEEEEPPNNNNNNNNNNNBANAAAAAANNNNNNNNN
 | 
					 | 
				
			||||||
QQWVVVVVVVVVVEEEEEEEEEEEEDSSSSSSSSSSSSSSSSSJXXXXXXXXGGGGGGGGGGNGKWKKWWWDDDDDIIIOOOOOOOOYYYYYYYYBBBBEEEEEEEEEENNNNNNNNNNNNNNANNNNAAAANNNNNNNN
 | 
					 | 
				
			||||||
VQQVVVVVVVVVVVEEEEEEEEEEEDSSSSSSSSSSSSSSSSSJXXXXXXXGGGGGGGGGGGGGKWWWWWWWDDDDDIIDOOOOOOOOYYYDYYHBBBBEEEEEEEEEEPNNNNNNNNNNFNNANNNNNNMMNNNNNNNN
 | 
					 | 
				
			||||||
VVVVVVVVVVVVVVEEREYEEEEDDDDSSSSSSSSSSSSSSSSSXXXXXXXGGGGGGGGGGGGGGWWWWWWWDDDDDDDDOOOOOOOOJYYHHEEEEEEEEEEEEEEEEPNNNNNNNNNNNZNNNNNNNNNNNKNNNNNN
 | 
					 | 
				
			||||||
GVGVVVVVVVVVVVVEYYYYDEDDDDDSSSSSSSSSSSSSSSSYYYGGGGGGGGGGGGGGGGGGGWWWWWWDDDDDDDDDOOOOTOOOOYYHCEEEEEEEEEEEEEEEEPNNNNNNNNNNZZZZNNNNNNNNNKNNNNNK
 | 
					 | 
				
			||||||
GGGVVVVVVVVVVVVYYYDDDEDDDDSSSSSSSSSSSSSSSSSYYYYGGGGGGGGGGGGGGGGGGGWHHWDDDDDDDDDTTTOOBBBBBBBBBEEEEEEEEEEBGGGBPENNNSSNNNNNNNNNNNNNNUNNNKKKKKNK
 | 
					 | 
				
			||||||
GGGGVVVVVVVVVVVYYYDDDDDDDDDUUUSSUUSSSSSSSSSYYYGGGGGGGGGGGGGGGGGGGGWDDDDDDNNDDDDTTTTTBBBBBBBBBEEEEEEEEEEGGGGGEEESRSNNNNJTTNNNNNNNNNNNNKKKKKKK
 | 
					 | 
				
			||||||
GGGGVVVVVVVVVVVYYYYYDDDDDDUUUUUUUUSSSSSSSSYYYYGGGGGGGGGGGGGGGGGGGGDDDDNNNNNNDTTTTTTTBBBBBBBBBEEEEEEEEEEHHRSSSSSSSSSNYYTTTNNNNNNNNNNNKKKKKKKK
 | 
					 | 
				
			||||||
VGVVVVVVVVVYYYVYYYYYDDDDDDUUUUUUUUUSSSSSSSYYYYGGGGGGGGGGGGGGGGGGGGGDBWNNNNNNNTTTTTTTBBBBBBBBBEEEEEEEEEEHHHSSSSSSSSSYYYTTTNRRNNNNNKKNKKKKKKKK
 | 
					 | 
				
			||||||
VVVVVVVVVVVVYYYYYYYYYYDLLDUUUUUUUUUUUSSSSSYYYYGGGGGGGGGGRGYGGGGBBGGBBBNNNNNNNTTTTTTTTTWWXXXHXEEEEEEEEEEHSHSSSSSSSSSSSYYTTTRRRNNNNNKKKNKKKKKK
 | 
					 | 
				
			||||||
WVVVVVVVVVYYYYYYYYYYYYDLZUUUUUUUUUUUUSSSSSYYYYGGYGGGGGGGRRYGBBBBGGGBQQNNNNNNNTTTTTTTWWWXXXXHTEEEEEEEEEEHSSSSSSSSSSSSSYTTTTRRRNSSNNKKNNNKKKKK
 | 
					 | 
				
			||||||
WVVVVVVVVVYYYYYYYYYYYQDLZZUUUUUUUUUUUSSSSSXYYYYYYYGVVGSGRRYRBBBBBBBBBBNNNNNNNNTTTTTTWHHHRHPHTEEEEEEEEEEHSSSSSSSSSSSSSSSRTRRNNNSSNNNNNNNKKKKK
 | 
					 | 
				
			||||||
VVVVVVVVVYYYYYYYYYYYYQLLLLUUUUUUUUUIISSSSXXYYYYYYYGVRGSRRRRRBBBBBBBBNNNNNNNNNTTTTTTHWHHHHHPHHEEEEEEEEEESSSSSSSSSSSSSSSRRRRCCNNNSSCNNNNNNKKKK
 | 
					 | 
				
			||||||
IVVJVVVVVJJJYYYYYYYYDLLLLLLWWWUUUUUIIIYSSXXXYYYYYYYRRBRRRRSSBBBBBBBBBBNNNNNNXXXXXXXHHHHHHHHHHEEEEEEEEEESSSSSSSSSSSSSSRRRRRRCCCCSCCNNNNNKKKKK
 | 
					 | 
				
			||||||
KKKVVKVVVVVJJYYYYYYYYYYLLLLLWWUUMMMMMIYQXXXXYYYYYYRRRRRRRRRBBBBBBBBBBBNNNNNMXXXXXXXHHHHHHHHHHEEEEEETTTTHNNNSNSSSSSSSSSSRRRRCCCCCCCCCCNNNNKKK
 | 
					 | 
				
			||||||
KKKVKKVVVVVJJYYJYYYYDLLLLLLLWWYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRBBBBBBBBBBBNNMNNXXXXXXXXXXXXHHHHHHEEEEETTHHHNNNNNSSSSHSHSHHHHHHCCCCCCCNNNNNNQKMM
 | 
					 | 
				
			||||||
KKKKKKKVVVVJJJJJYYYYYLLTLLLLLLYYYYYYYYOYYYYYYYYYYYRRRRRRRRRDBBBBBBBBBBBNNMMMXXXXXXXXXXXXHHHHHHEEEEETTHHHNNNNNNNSSHHHSHHHHHHCCCCCCCNNMMNMQMMM
 | 
					 | 
				
			||||||
FKKKKKKKKKJJJJJJYYYYYYYTTLLLLLYYYYYYYYYYYYYYYYYYYYRRRRRRRRRDBBBBBBBBBBNNMMMMXXXXXXXXXXXXHHHHHHEEEEETTHHHHNNNNNNNHHHHHHHHHHHHCCCCCCCNNMMMMMMM
 | 
					 | 
				
			||||||
FFFKKKKKKKJJJJJJJTYBTTVTTZLVVVYYYYYYYYUYYYYYYYYYYYYRRRRRRRBBBBYBBBBBBBNMMMMMXXXXXXXXXXXXHHHHHHEEEEETTTHHHHNNNNNNHHHHHHHHHHHHCCCCCCCNNNMMMMMM
 | 
					 | 
				
			||||||
FKKKKKKKKKKJJJJJJTTTTTTTVVVVVNYYYYYYYYUYYYYYYYYYYYYYRYYRRYYYYYYBBBBBBNNMMMMMXXXXXXXXXXXXHHHEEEEEEEEZTTHNHHNNNNNNNNNHHHHHHHHCCCCCCCCNNNMNMMMM
 | 
					 | 
				
			||||||
FFKKKKKKKJJJJJJTTTTTTTTTVVVVVVYYYYYYYYUUUUYYYYYYYYYYYYYYYYYYYYYBBBBBBBBMMMMMXXXXXXXXXXXXHHEEEEEEEEEZTTNNNHNNNNNNNNNHHHHHHHHCCCCCCCCNNNNNLLLM
 | 
					 | 
				
			||||||
FFFKKAAAJJJJJJJTTTTTTTTTVVVVVVYYYYYYYYUUUUYUUYYYYYYYYYYYYYYYYYYBBBBBBBBBMMMMTTXXXXXXXXXXEHEEEEEEEEEZZZNNNNNNNNNNNNNHHVVHHHCCCCCCCCNNNNNNLLLM
 | 
					 | 
				
			||||||
FFFKKAAAAJAJJTTTTTTTTTTTVVVVVVYYYYYYYYUUUUUUUYRRRRRYYYYYYYYYYYYBBBBBBBBBMMMMTTXXXXXXXXXXEEEEEEEEEEEZZZNNNNNNNNNNNNNHHVVVHLCCQQNNCNNNNNLLLLLO
 | 
					 | 
				
			||||||
FFFABAAAAAAJTTTTTTTTTTTTVVVVVVYYYYYYYYUUZZZUUZRRRYYYYYYYYYYYYYYYBBBBBBBTTTTTTTXXXXXXXXXXEEEEEEEEEEEZZZXZNNNNNNNNNANNNVVVVVCQQQQNNNNNNLLLLLLL
 | 
					 | 
				
			||||||
FFAAAAAAAATJTTTTTTTTTTTGVVVIIVYYYYYYYYZZZZZZZZRRRYYYYYYYYYYYYYYZZBBBBBBBBBBBTTXXXXXXXXXXTEEEEEEEEEEZZZZZNNNNNNNNNNNNVVVVVVQQQQQQNNNNNLLLLLLL
 | 
					 | 
				
			||||||
FAAAAAAAAATTTTTTTTTTTTTVVVIIIVVVVUUUUUZZZZZZZZRRYYYYYYYYYYYYYYYZZZBBBBBBBBBBTTTTTTTTTTTTEEEEEEEEEEEZZZZZNNNNNNNNNNNVVVVVVFFQQQQQNNNNNLLLLLLL
 | 
					 | 
				
			||||||
FAAAAAAAAAATTTTTTTTTTTTTVVIIIUUUUUUUUUUZZZZMMMMYYYKYYYYKYYYYYYYYYYBBBBBBBBBTTTTTTTQTTTTTTEEEEEEEEEEZZZZZNNNNNNNNNNVVVVVVVFFFQFQQNNNNNNLLLLLL
 | 
					 | 
				
			||||||
AAAAAAAATTATTTTTTTTTTTTUVVVIUUUUUUUUUUUZMMMMMMYYYYKKKKKKKYYYYBBBBBBBBBBBBBTTQTTQQQQQTTTTTTEZZZZZZZZZZZZZZNNNNNNSSSVVVVVFFFFFFFFQNNIIOIIILLLL
 | 
					 | 
				
			||||||
AAAAAAAAATTTTTTTTTTTTTTUUIIIIUUUUUUUUURZMMMMMMYMMYKKKKEEYYYYYBBBBBBBBBBBDQQTQQQQQQQQQTTTTTKZZZZZZZZZZZTZZNNNSSSSSSVVVVVFFFFFFFFIIIIIIIILLLLL
 | 
					 | 
				
			||||||
AAAAAAAAAATTSTYTTHHTTTUUUIMIIUUUUUUUUUUUUMMMMMMMMKKKKKEKKKKKBBBBBBBBDDDDDQQQQQQQQQQQQQQQQQQQZZZZZZZZZTTNNNNSSSSSSSVVVVFFFFFFFFBIIIIIIIIILLLL
 | 
					 | 
				
			||||||
AAAAAAAAAASSSHTTTHHTOAAUUIIIUUUUUUUUUUUUUMMMMMMMKKKKKKKKKKKBBCCBBBBBDDDDDDQQQQQQQQQQQQQQQQUDZZZZUUZZZTNNNVNNSSSSSSSEVVVFFJFGFFBBBIIIIILLLLLL
 | 
					 | 
				
			||||||
AAAAAAAAAAAHHHHHHHHHAAAUUUUUUUUUUUUUUUUUUMMMMMMMKKKKKKKKKKBBBCCCBCBBBDDDDQQQQQQQQQQQQQQQCUUUUUZUUUUUZUUNNSSSSSSSSSSSVVVVVJJQQQQQBIIHIILLLLLL
 | 
					 | 
				
			||||||
AAAAAAAPPAPHHHHHHHHHHEAFUFFUUUUUUUAUUUUUUMMMUMMMMMKKKKKKKKBBBCCCBCCBDDDDDDQPQQQQQQQQQPPUCUUUUUUUUUUUZUUUUFUUSSSSSSSSSSSOQJQQQQQQBIHHHLLLLLLL
 | 
					 | 
				
			||||||
AAAQAAAPPPPHHHHHHHHHHHAFFFAFUAUUUUAUUUUUUUUUUMMUZMKKKKKKKKBCCCTCCCCCCPDDDDPPQQQQQQQQQPPUUUUUUUUUUUUUUUUUUUUUSSSSSSSSSOSOQQQQQQQQQIHHHLLLLLLL
 | 
					 | 
				
			||||||
AAAAAAAPPPPHPPHHHHHAAAAAFFFFAAAAUUUUUUUUUUUUUMUUUUKKKKKKKKCCCCCCCCCCCPPDDDPPPPQQQQQQQPPUUUUUUUUUUUUUUUUUUUUSSSSSSSSSSOOOOOQQQQQQQQQHHLLLLLLL
 | 
					 | 
				
			||||||
APAAAAAPPPPPPPHHHHHAAAAAFFFAAAAAUUUUUUUUUUUUUUUUUUUKKKKKKCCCCCCCCCCCPPPPPPPPPPPQPPPQQPPPPUUPPUUUUUUUUUUUUUUSSSSSSSSSSOOOOOOQQQQQQQQHHLLLLLLL
 | 
					 | 
				
			||||||
PPPAAPPPPPPPPPHHHAHAAAAAAAFAAAAAUUUUUUUUUUUUUUUUUKKKKKKKKCCCCCCCCCCCCPPPPPPPPPPPPPPPPPPPPPPPPUUUUUUUUUUUUUUSSSSSSSSSSSOOQQQQQQQQQQQQHHLLLULL
 | 
					 | 
				
			||||||
PPPPPPPPPPPPPHHHHAAAAAAAAAAAAAAAAUUUUUUUUUUUUUUUUKKKKKKKKKCCCCCCCCCCCCPPPPPPPPPPPPPPPPPPPPPPUUUUUUUUUUUUUUSSSSSSSSSSSSOQQQQQQQQQQQQQHHLLUULL
 | 
					 | 
				
			||||||
PPPPPPPPPPPPPPHQHAAAAAAAAAAAAAAATTTUUUUUUUUUUUUUUKKKKKKKKKKCCCCCMMCPPPPPPPPPPPPPPPPPPPPPPPPPUUUUUUUUYUUUUUUSSSSSSSSSSSQQQQQQQQQQQKKQHHLUUUUU
 | 
					 | 
				
			||||||
@ -1,10 +0,0 @@
 | 
				
			|||||||
RRRRIICCFF
 | 
					 | 
				
			||||||
RRRRIICCCF
 | 
					 | 
				
			||||||
VVRRRCCFFF
 | 
					 | 
				
			||||||
VVRCCCJFFF
 | 
					 | 
				
			||||||
VVVVCJJCFE
 | 
					 | 
				
			||||||
VVIVCCJJEE
 | 
					 | 
				
			||||||
VVIIICJJEE
 | 
					 | 
				
			||||||
MIIIIIJJEE
 | 
					 | 
				
			||||||
MIIISIJEEE
 | 
					 | 
				
			||||||
MMMISSJEEE
 | 
					 | 
				
			||||||
							
								
								
									
										71
									
								
								day12/sol.py
									
									
									
									
									
								
							
							
						
						
									
										71
									
								
								day12/sol.py
									
									
									
									
									
								
							@ -1,71 +0,0 @@
 | 
				
			|||||||
import itertools
 | 
					 | 
				
			||||||
def solve(file):
 | 
					 | 
				
			||||||
    grid = [l.strip() for l in file]
 | 
					 | 
				
			||||||
    ny = len(grid)
 | 
					 | 
				
			||||||
    nx = len(grid[0])
 | 
					 | 
				
			||||||
    def get(p):
 | 
					 | 
				
			||||||
        x,y = p
 | 
					 | 
				
			||||||
        if 0 <= x < nx and 0 <= y < ny:
 | 
					 | 
				
			||||||
            return grid[y][x]
 | 
					 | 
				
			||||||
        return '.'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def flood(initial_point):
 | 
					 | 
				
			||||||
        c = get(initial_point)
 | 
					 | 
				
			||||||
        stack = [initial_point]
 | 
					 | 
				
			||||||
        count = {} # set of points connected to x,y. value is the number of connected neighboring points
 | 
					 | 
				
			||||||
        while stack:
 | 
					 | 
				
			||||||
            p = stack.pop()
 | 
					 | 
				
			||||||
            if p not in count:
 | 
					 | 
				
			||||||
                count[p] = 0
 | 
					 | 
				
			||||||
                x,y = p
 | 
					 | 
				
			||||||
                for n in (x+1,y), (x-1,y), (x,y+1), (x,y-1):
 | 
					 | 
				
			||||||
                    if get(n) == c:
 | 
					 | 
				
			||||||
                        stack.append(n)
 | 
					 | 
				
			||||||
                        count[p] += 1
 | 
					 | 
				
			||||||
        return count
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    points = lambda: itertools.product(range(nx), range(ny))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    done = set() # set of points which have been counted as part of a shape
 | 
					 | 
				
			||||||
    total = 0
 | 
					 | 
				
			||||||
    total2 = 0
 | 
					 | 
				
			||||||
    for p in points():
 | 
					 | 
				
			||||||
        if p in done: continue
 | 
					 | 
				
			||||||
        shape = flood(p)
 | 
					 | 
				
			||||||
        done |= shape.keys()
 | 
					 | 
				
			||||||
        area = len(shape)
 | 
					 | 
				
			||||||
        perim = 0
 | 
					 | 
				
			||||||
        for p,n in shape.items():
 | 
					 | 
				
			||||||
            perim += 4-n
 | 
					 | 
				
			||||||
        #print(get(p), area, perim)
 | 
					 | 
				
			||||||
        total += area * perim
 | 
					 | 
				
			||||||
        total2 += area * discount(shape)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    print(total)
 | 
					 | 
				
			||||||
    print(total2)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def discount(shape):
 | 
					 | 
				
			||||||
    def sides(p):
 | 
					 | 
				
			||||||
        x,y = p
 | 
					 | 
				
			||||||
        s = 0
 | 
					 | 
				
			||||||
        if (x+1,y) in shape: s += 1
 | 
					 | 
				
			||||||
        if (x-1,y) in shape: s += 2
 | 
					 | 
				
			||||||
        if (x,y+1) in shape: s += 4
 | 
					 | 
				
			||||||
        if (x,y-1) in shape: s += 8
 | 
					 | 
				
			||||||
        return s
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # only count a side as free if the neighbor to the north or west
 | 
					 | 
				
			||||||
    # does not have the same side free
 | 
					 | 
				
			||||||
    perim = 0
 | 
					 | 
				
			||||||
    for p in shape:
 | 
					 | 
				
			||||||
        x,y = p
 | 
					 | 
				
			||||||
        free = sides(p) ^ 15
 | 
					 | 
				
			||||||
        if (x-1,y) in shape:
 | 
					 | 
				
			||||||
            free &= sides((x-1,y))
 | 
					 | 
				
			||||||
        if (x,y-1) in shape:
 | 
					 | 
				
			||||||
            free &= sides((x,y-1))
 | 
					 | 
				
			||||||
        perim += free.bit_count()
 | 
					 | 
				
			||||||
    return perim
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
solve(open("sample4.in"))
 | 
					 | 
				
			||||||
solve(open("input"))
 | 
					 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user