,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:cc:,,,,,,.'','',',,,,'''cooooollllll:,,,,,,,,,,,,,,,'''''',,,..
,,,;;;;;;;;;;;;;;;;;;;;;,,,'''',,,;;,;,,::::::::::::ccl;,,,,,looooollllll:,,,,,,,,,,,,,,,..';;;;;;;;
:::cc:...;::;;;;::cccc::::c;,,'.''',....::::::::::::cccc:::::clclccccllllc:::cc:;;,.........::::cc::
;cccc:...:::ccc:cclllloolll:;;::::::::::::::::::::::clllll;,,:';:;';';;lllllllolcc;.......''llllll::
:cccc:...ccclllcccloooodlllcllc:::::::::::::::::::::lllccccccccllccccccllllllooooo:......:::llclcl:;
,,,,,,...ccc::::::odddddolllllc:::::::::::::::::::::ddxc::cllllllllllllllllllllooo:...,,,,,,,,'..',,
lllclccccccccccooooodolollllccc:::::::::::::::::::::dddc::::cccclllcccccclllloooddc...,,,,,,,,'..'..
oddddddddlllllldxxdoollolllcccc:::::::::::::::::::::lloccccccccclllccccccllllllloo:...,,,,,,,,'..'..
oooddddddoooooooodoooooocccccc::::::::::::::::::::::cccclllllllllllc:;,,::;,:ccccc;...,,,,,,,,,..,..
;;;;;;;:::::::::::looooo:;;;;::::::::::::::::::::::::::clllllllllllccccccccccccccc;...,,,,,,,,,,,,..
;.':'';.'::::'.:::cclccccclllloloc:::::::::::::cclllooollllllllllllccccccccccccccc:''',,,,,,,,,,,,..
;;;:;;;;;:::;,;::::::;;;:cccccccccccccccccccccllloooddd:;;;;;clllllc:::::cccc:::cc:,'',,,,,,,,,,,,..
::::ccccc:::::::::,''''''','',,,,;,;;,ll,;';:,colccoooo,,,,,,loooooc:::::cllcc:ccc:,''''',,,,,,,,,..
ollcddddo:cccll;;;,,,,,,,,,,,,,,,;cooloolocoocoololooooxxxxxxdooooolcccccccccc,,,:;,,'..............
odoodddddllloodddd;,,,,,,,,,,,,,,cooooooooooooooooooooo0KXxxxxxkc:::cccccccccc;'':;,,'..............
cclcclllldddddddddccllll:::::::::loooooooooooooooooooooKXXkxxxddlccccccccccccc;..:;'''...'''........
::::::::coodooooooooodddlcccllllllooooooooooooooooooodd000doooccoloccccccccccc;,,:;''''','''..''''''
:::::::::llo:::,,,,,,,,,:::c:ccc::ccccccccccll:loc:llolodddooolldddl:ccccccccc:,;:;;;;ccc.'',,,,,,:c
''''',cccc:ccll;;;;;,;;;;:;:::cllllllllllllllldddddddddddddooooooooccccccccccc;,':;,,,...,,,,,,,,,''
,;,'''cccc;:odd;,,,;',,;':,,::clllllllllllllllooolollloooloooolloooc:ccccccccc;.'::cc:;;;:cclloccc,'
:c:'',cccc:cooo:::::::::::::::ccccllllllllllllloo;:c::::c:cccc;::loc:ccccccccc:;;cccllcccllldddoll,'
ooo;;:cccccc;;;::::::::::::::::c:cccllloddddd;:llloooooooooooooooooc:ccccccccc;,,::;::::;;:;::;ccc,,
::::::::cxxk''':::::::::::::::clolodxxxdddddd,'cl:cccllc;;clcclllooc:ccccccccc;..:;......',,,,,...''
::::::,;;;;;...;:::::::::::::::;;;;:lddddddddc;cl;;::cc:,;ccccc:cclccccccccccc:;;::,,'...;;;;;;,,,;;
::::::,,,......;::::::::::::::;,,,,,:dddddddd;col:::::::;::::cclcccccccccccccccccc:::;...:::::::::::