...'''''''''....
....''''.''...
.'':!:'. ........ .....'''''...
':. ..'^!!:''''':::::!!!:' .............
'. '%0!!......'''':::!!^!' ...........
:^! . .!!:!..........'':!!!!^^: ............
.@$@%!!''':' ..'':''''::!^^' ............
.'+X0/::'' .''''''''''::!^: ................ ....
. ... .'... .'':::::''::!^: ..'........... .....
...'''^/%/!. . .:^/XC00CCCX%%/^!. :'.... .':!!!::::!!+:..!:
..'''''' ... ......'':!!'. ..:/C@@@@@00CCCXXXXXX%%/^' '''''.. ..':::::::!!^++'..
.. ..':^' ... ...'':!!..!X@$$$