;;:::::::cccc::::::;;;::::::::::c:::::;;:;;::;;;,,,''''...',;:::c::ccccccc:cccccccc:;;;''',::ccc:c::::cc::;;;;,,,;,,,,,;;;;::::::;;;,,,'''''',,;;::::;::;;,;,,,,'',;;;;,,;;,'.
;;:::::ccccc::;::::;;;::::::::::::::::::;;;;;,,,,,,',,,,,,;;;::::cccc::::::::c::::;;;;:;,,:clcccclllllc:::;;;;;;,;,,,,,;;;;::::::;,,,,''''',,,,;:;:c:::::,,,,,,'',,,;;,,,,;,'.
::::::::::::::::::::;;;;:::::;::;:;;;:;;;;;,,,,',,,'''',,,,;;;;:cccc::::cccccc:;;,,,,;;:cllclccclclllllllccc:::;;;;;;,;;;;;::::;;,,,,''''',,,,;::::c::;;;,,,,,'''',,,,,,,,,,'.
:::::ccc:::::::;:::;:;;:::::::::;;;;;;;;;,,,,,,,''..''',,,;::cccccllooooooolcc:;;;;::;;;;;;;,,,,,,;;;:::cccccccccc::::;::;;::::;;,','''''',,,,;;::::::;,,',,,''.''''',,'''''..
::::::::::;;:::;;;;;::;::;;::;;::;;;;;;;,,,,,,'''..',,,;;;::cloodddddddollccc:::::;;,',''''''',,,,,,,,,;;;::::::cccllccc:;;;;::;,'','''',,;;;;;::::::;;,,,,,''..''''''''..''..
:::::;;;::;;;;;;;;;;;;;;;;;;;;,;;;;,;,,,,,,,'''''',,,,;;:cllooddddddolcc:::cclcc::;;;,,'',,,''''''''',,,,,;;;;;;;::cccccllc::::;,'',,''',,,,;;;;;;;;;;,''',''''..'''''''.'''..
:::;:;;;;;;,,,;;;;;;::;;;;;;;;;;;;;,,,,,,,''''''',,,;::ccllloodddollccccclllc:::::;;,,;;,,,''',,'''''',,,,,,;;;;;;;;;::cclool::::;'',,',,,;;;;;;;;;;;,,''''''''....''''.......
;;:::;;;,,,;,,,,,,,;,;;;;;;;;,,,,,,,',,',''''',,,,;;::cccclloddoolcccclolc:::;:::;;;,,,'',,,.'''''',,'',,,,,,;;;;;;;::;:::cclol:;;;,,,,,,,;,,;;;;;;;,,'''''''''''''''''...''..
;;;;;;;;;,,;;;;;;,,,,,,,,,;;,,,,,,,,,,,,'''',,,,;;;:::ccclloddoollllool::::;:::;;,,,'',,,,,..',,'''',,,',,,,,;;;;;;;;;::::::ccllc;,,;;,,,;;,,,;,,,,,,''''''...''..............
,,;,,,,,,'',,,,;;;,,;,,,,,,,,''',,,',,,'',,,,,;;;::::::cloddoollclllc:;;::;::;,;;,,,,,;,,,'..,,,.'''',,,'',,,;;;;;;;;:;::c::::ccloc;,;;;,,,,,,,,,,,,''''......................
,,,,,'''''''',,;,,,,,,,,,,,,,,',,,,,,'''''',,;;:;;;;::cloooollccccc:;;;:;:::;,;;,;:;,,,',''.',''''',,','''',;,,;;,;;;;;::::cc::ccclol:;;;;,',,,,,,,''''.......................
,,,,,''''''','',,,,,,,,,,,,,,',,,,'''''''',,;;;;;;::cclllollccc:::::;;;::;,,::::::;..,,,'',','.'..'',,'',''',;;,,;;;;;;;:;;;:cccccclodo:;;;,,,,,''''''........................
'''',,''',,,,,',,,,,',''''''',,'''''.''',,;;;;;;;;:::ccllcc::;;:;;::;;:;,,;clc:;::''';;,,,,'''.''.'.','.',''.',,,,,;;;,;;::;,;:ccccclodxo;,,,''''''''.........................
''''''''','''','','''''''''',,'''.'''',,,;;,;;;;;;;:::cc::;,';:;;::;;;,,;:clc;;cc,',,;;,,;;'''.'.'.'.,,'..',''',;,,',;;,;;::c:;;cclcclooxxc;,,''''''..........................
''','',,,''''''''''''''.''''''..''''',,,,,,;;;,;;;:::::;;,',;;,;:;,,;,,:cccl::lo;;,,,::;:c;,,'''.'.''',''..,,''',;;,',;;,;;;:l:;:clllllooddl:,'''.............................
''',,''''''''''''''....'''''...''''''',,,,,;;;,,;;;:;,,,'.,,,,;:;,,,,,:c:cllccoc:;,,;c:;c:;;,,''..'',',,,'..;,',,,;;,,,;;;;::cl:::cllolloodxdc,'''............................
''''''''''''....''.............''''',,,,,,,;,,,,;;;,','.',,,,;;,',,,,;:;:llc;loc;,;;cllcl:;;,;;'...';',;,,..,;,,,;;;:;,,,:;:::cocc:cloooooodxxo;''............................
''''...'.........................'',,,,',,;,,,,,,,'''..',,,,,,''',,,,;;;ll:;:xc;;;;clolcl::,,:;''..',;,;;,,.,;,;,,;;;::;;,::cclloloccooddoodkkkdc,'...........................
.'''.............................'',,,'',,,,,,,,''....',,,',,''',,'',;;ccc;,od;;;;;:lxlllc:;;:;'''.',:;;;,,',;';:;,;:;:c:;;ccllloodocoddxxdodkOOkl,''.........................
.................................',,'''',,'',,'''....'',,''''.'''..',;;:c:,:dc;,;;::okodl:;;;c;,,,.',,c:c;,,;c';:c;,;;:col::clododdxddxxkxkxdxOOOOo,..'......................
...............................'.',''''','',''''.....''''''..'''...'';;::,;lo;,,;;::okdo::;:cl:,:;'',,;cc:,,:l,:cl:;:;;;cdoccoodddxkkOodOxkkxdxO0OOl,..'....................
................................''''.'',,''''''.....'''..'...'.....',;,;;,;oc,,,;:;:dddc;;;:ol;:c:,,,,;:cl:;cd::loc:cc;c:codooddkxxxOOkdOkkOkxdxOKOxl;'.....................
.............................''''''..'','''.''......'''.'..''.......,'';,,co:',,;:,:ddl;;;:coc;cc:,,,,;;ccocldlcloc:ccc:::cdxoldxkxkO0OkxOkkOkxdk0KOkoc'....................
.............................'''''....'''..................'.......''..,,,ll,',,,,'ldo:;;;clc,;ll:,',,;;:cloodolool:l:lc:cl:oxolxkkk00KOkxOkOOkkxk0KOxdc'..................
............................','''.....''..................'........'...';;l:',',,',loc;,,;cl,';cc:,,,,,;;cllodxcllc:lccollllcldooxOkO0KKOkO0kOkkkkO00kdxo'..'..............
...........................''''......''.................................,:l;'''''';cl:,,,;::.';;c,',,,,,,:lc:odlll:ccccllldllllddokkkO0K0kkOkOOkOkO00Okxxl'.............
...........................'''''.....'..................................':c,.....,;:c;',,;;'.'',;,,,,,,,;:c::locc::c:c:cl:oolcccoxdxkkOO0xdkOk0OOOkO00Okdko'.............
............................''......'....................................;:,....''';;;,',,'....',,,,,',;;;::;cc::;;:,:;;ccldl,;cclooxkkkOklxkk00O0kkO00Oxdko...........
.............................'...........................................':;'..'''';;,'.'......'','',,;::,;:;::;,,;;',;;:ccol'.';:llldkkxkodkxO0000OO000kddxc..'.........
.................................................. ......... .. ... .;',,'''..;,'........''''',;;:;;',;;;,:'',''',;cl:c:'..'',:ccoxxdddddk0000O00000kxodc..........
.................................................. ....... . ... ... ...',;''.''.............,,;;;;;,',,,;,,,'...'',:c;;;'.....';cccloocdoxOK00O0O000Okdoo;.'....... .
........... ................................ .... ........ . .. . ...',,''...........''',,;;;;,;;,''',,''.'..'''::,,;'......';:::lo:cddO000OO0O000Oxodl;....... ..
......... ................................. ... ........ .....'''..........',;;;;;;;;,;;;'..',,''..'..',,,,;;,.......,;:::cc:lox000kkOO00OOkdloc;'.......
...... .................................. .. ......... .......... ...',:::;;;,,,,,,;;;''.','''''....''';:;,'....'',,;;;;;:ccdOO0xO0O00kOOklolc:........
.. .................................. . ..'.... .............,;::::::;;,,,;;::;;;,',;;,'','....';:::;'...'',,,,;;;,,c:okO0xk00O0Ok0kdoocl,........
....................... ........... . '.;... ....... ....,;:::cc:cc::;;;;::::cl:,;cc:;,,,,,...,clcc:;,'',,,,,,,,;,'::lxO0ddO0kOOkOOkooll:'........
........................ .......... .,.''.. .. ...........',;:cccccccccccc:::::cldoccoolc;;,,,,,'',cdollc:;,;:;;,,,,,'';;cdk0xok0Ok0kO0kdodoc,........
........................ ......... . . ...,.. .. ..........',,;::ccllllllllllllllllodxxdxxxdl:;;;;:cc;;:ldllooc::cc:;,,,,'';;cokOdoxOOx0Ok0Oxdddc,,'.......
......................... .......... .. ...,... .........'',;;;::::clllllooooooooooddxxkkkkkkxdl:::::cclc:cododdoolcclc;,,',,;;:ldxolxOkkOOxkOxodxl;','......
.......................... ........... . .................'',,;;:::::cccccllllooodddddddxxxkkkkOOOkkxdol:::cccllcclddxxkxdoooc;,,,;;::codocdkkkkkxx0kdoko;,.,'....
.......................... .............. ...........,'.'',,;;:::ccccccccccllloooodddddxxxxxkkkkkkkkkkxxdlc::c:::cclodxkOO000koc;;;::c:cloo:oxxkdxxdkOxokx:;'.,......
......................... . ...........................''',,,,,,;;;;;;;;;::::::ccclllloodddxxxxxxxxxxxxxxdddoollccc::::ccodxkO00K0kxdl:::c:cloo:lxxxddxdxkxdxkc,,..'.....
......................... ....................'''''',,,,,,,,,,,,,,,,,,,,,,;;;::::ccclodddxxxxxxxddddddooollllcccllllllloodxkO00Oxdxx::cc:ccll:lddddododkdookl';...'....
........................... ................''''',,,,,,,,'''............'''',,,;;;;::clloddxxxxxxxddollc::;;;;;;::cloodxkkO00KKKKOxxkOo:cl:ccclcclooddddoxdldko..,......
........................ .. ................''''',,,'..... ........''',,,;;;:ccloddxkkkkOkkdoc;,...........',;:ldxkO00000OxkO0x;cl::ccl::lolddododdcoxd..''......
........................ .. ..............''''''''....... .,'.....'',,;;;::ccldxkkO00000kxoc;'..... ..'::l:,,:cldkO0OkxkO00k:::c:ccc::clcoddoooolldx...'......
....................... ... .. ..........''',,'''...................,,,....'',,,;;;:ccldxkO00KKKK0Okko'''.........'okkdc:clooxkkxxO0KKOc;::cc:c::clclddodoolldd'...'.....
...................... ... . ........',,,,,,''''''',,,,,,,''',,;::::;;,,,,,,;;;::cldxkO0KKXXXXK0OOxlcc:;;;,,'';oOOOkkOOkxxxxxxkO0KKOc,::cc::::cccldxdolllcok,...'.....
... ................... .. ......''',,,,,,,,,,,;;;;;;;;;::cclllcc::;,;;;;;::cclodkO0KKXXXXXXK00kdolllllooddxkkO00KKKKK0OOkkkO0KKO:'::cc::::ccccokddllc:od;.........
.. ... ............... .. .....''',,,,,,,,,;;;;;;;;;;::::ccccccc:::::::::cclldxkO0KXXXXXXXK0K0OxolcccloodxkOO0KKKXXKKK00OOO0KKO;.;;::;;::ccccldddllccll,.........
. . ............. ... . ...'..'',,,;,;;;;;;;;;::::::cccclllllllccc::::ccclloxkO0KXXXXXXXXXXXKK0kxxddoddxkkO000KKKXXKKK0OOO0Kk,.;;:;;;,;:cccldxdoc::ll;.........
. .. ................ . . ....'',,;;;;;;;:::ccccccllllloooooooollccc:::::ccldxkO0KKXXXXXXXXXXXXKKK00OOOOOOOO000KKKXXXXXK0OOO0d..,,;;;;,;;:ccloxdoc::ll;.........
............. . . ....',,,;;;;:::::cclllloooodddddddddoolcc::;;::ccldxkO00KKXXXXXXXXXXXKKKKKKK0000000KKKKXXXXXXXK0OOO:.'.;;,,;,;::::cloolc::cl,.........
. ............. .....,;,;;:::::::cccllooodddxxxxxxddolc::;;;;;::cloxkkO00KKKXXXXKKKKKKKKKKKKKKKKKKKKKXXXXXXXXXXK0Ox,,..;;,,,;;:cccllddoc:::c,'........
. ........... .. ....',,;;:::::::::cccllooddxxxxxxxdolc:;;,;;;;::clodxxkO0KXXXKKXK0OOOOOO0000KKKKKKKKXXXXXXXXXXXX0Ol....;;,,,;;:cllooddol:;c:''........
. .......... . ....',,;;:::::::::cccloodddxxxxxxddlc:;,,;;::::;;:clodxkO0KKXKKKKKkxxxxkOOO000KKKKXXXXXXXXXXNXXXKk,....;;,,,;:cloddlodol;;c:'.'.......
........... .... ....',;;:::::::::::ccllooddddxxxdooc:;,,;;;;;;,,,,;:clodxkkOO0KKKKOdooddxkOO000KKKXXXXXXXXXXXNXXKd.....;;,,;;:lodooloool;:c:,.........
.......... ..... .....',;:::::::::::::ccllooddxxxddol:;;,';;;,,'...',;:cclodollodkO00doolodxkOO00KKKXXXXXXXXXXNNNXKc.....;;,,;:loooooclodl::c:;.........
........ ..... ......,;:::::::::::cccclloodddxxxdolc:;,'',,''.....',:ccool:;;:clxOkdolllodxkOO00KKKXXXXXXXXXXXXX0'.....,;';:loollllccodo:;cc;..'......
..... ...... .......,;:::::::::ccccccclloodddxxxdolc::;,''''''',;cloddxkkkxdddxkOOOkxdoodxkkO00KKKXXXXXXXXXXXXXk.....',;,clllllccl:codo:;c:,..'......
... ..... ........,;:::::::::cc:ccccllloodddxxddoollcc:::::ccoxkO0xdxk0KKKKKKKK000OOkxdxkkOO00KKKXXXXXXXXXXXXo....'''::cllllc:cl;cddo::c:,.........
.. ..... ........';;::::::::::c:cccccclooddddddooollccccllodxkO00xodxO00KKKKKKKKKK00OkkkOOO000KKKXXXXXXXXXXK;....'.,cc:ccll:;cl:lool::c:'.........
. .... .........';;::::::::::::::cccclloooooooollllcclllllllloddxddddxkO0KKKKXXXKKKK0OOOOO0000KKKXXXXXXXXX0'...'',::;:cccc:;:ccoool:::;'.........
... ........ ..,;:::::::::::::::ccccccllcccccccccc::::;,,''',,:cc:::::ldOKKKXXXXKKK00OOO0000KKKKKXXXXXXXd....';;,,::c::c;;::coxol::;,..........
... ......... .';::::::::::::::::::::cc::::::::::;;;,,.......'',,,'...',;lk0KKKKKKK0000000000KKKKKKKXXXK:...',,',;:;:::c;:;;:oxoc::,'..........
.. ........... ..,::::::::::::::::::::::::::::;;;,'......',;;;;;;;;::::::;;;lxkkO000000O000000KKKKKKKKKXx'...;'',,;,;::::::;;:oxoc:;,...........
.. ............. .;::::::::::::::::::::::::::,'''''..''.',;:::::;::ccloodoolllllodkOOO00000000KKKKKKKKKO,...,''',,,,;::cc::;;;xxlc:;'...........
................. ..;::::::c::::::::::::cc:::;,,;;::;;,''.',;;;,,,,;::clllodxkkxoclodkOOOO0000KKKKKKKKK0;...,',''',;,;:ccccc;,:kdc::,............
. . ........... .......... ..;::::ccc:c::c::::cccc::;;;;;;;;;;;;,''''',,',,;;::clloodddolcclldxkkOO000KKKKKKKK0:...''''.'';;;:c:cll:,,ckoc::,............
. .................... ............. ...,::ccccccccccccccccc::::;;;;;;;;,,''''',,,;:cllollcodddddolccclldxxkOO000KKKKKKk;.........'':::cccloo;',ldl;:c,............
.... . .. ............................... . .';:ccccccccccccccccc:::;;;;;;;;;;;,;;;;:cclodxkOOOkkkkxkxdlllllodxxkO0000000Ol,'........,,;c:clclod:,';ooc;:l,............
..................................... ......... . ....,:cccccccccccccccc:::::::;;:;;;;;:;;::cclodxkkO00OOOOkkxdooooddxkkOO0000kc'.''.......',,:cclcldd:,,,cocc;:c,............
........................................................,:cccccllcccccccc:::::::::::::::::::cccloodxkkOO000OOkxxdddxxxkkOOOOxc'.''''.....'',;:cccloddc,,;:lc;::::'............
........................................ ...............,:cccccclcccccccccccc::::cc::::::ccclllooddxkOO00OOkkxxxxxkkkkkxc,...'''''......,;;:llodddl;;;clc;,';;;,............
.. ........................................................';::ccccccccccccccccccccccccccccclooooooddxkO00Okkkxxxxxkxdc:'...'''',,'.....,::clodxdol::clll;',',,,,'...........
...................................................'''......',;:cccccccccccccllllllccccclloodddoooodxkOOkkkkkkkkxxoc',,....'''',,''',,;ccloxxdddolclolc:,;;;;,,,,...........
........,,,'''.............'........'....''...'',,,;;........'';:ccccccccclllllllllllllloooooooddxxkkkkkkkkkkkxdc';c;'''.',,,,,;::::cooodxdooollxkxo::cc::,.';;'..........
...,'''''''''''''''''...''''''''',,,,,,,'''.'',;;:::,....'''''''',;:cclllllllllllloolooooddddxxxxxxkkkOOOkxdoc;;lc;,;,,,;:;:;:::::cc:cododoloxOkxoclkoc,...;,;;;,'......
.,:cclll;,;,;;;;;;,,,,;;::::;:::cc::::;:;,'',,';::clll:,.''''''''''''',;::ccllllooooooooddddxxxkkkOOOkkOOkxdl;lxxo,';:,,:::::::::::cloddddoodxkkdddO0Oc'...'''..........
.:lllodkOOooolclcccllc::::cclllloooolcccc::::;;,,,:cccloooc;'',,,,,,,,,,,,,,,;;;:::cclloodddxxkkOOOOOOOOkxddol:dkkxl;;;:::;:cc:::loooodddddxxxxxkkkOKXXXk,...'''..........
.'cooodddxO00ooxdddooodollccccllddddxdolloooocccc::c::clollodddolc::;;;;:::::ccccclllloooddxxxkkkkkOOOOOOOkxdooxkkkxdollllllccclooooooooooddxxddxxk0KXXNNNX0;,'.'''..........
'lddddxkxxkOKKd:codddoodddollooodxxxkkxdxdddddlooooloollclooodddxxxxxdolloollllloooodddxxxxkkkkkkkkkOOkkkkxxkO0XXXKOxdooddddooooddddollllloodxkkO0X00KXXXNNNNKkl;;,'..........
dxxxxxkkkkkOKXOloxkxdoodxxdllodoodxkkkkkkxxkxxdoddddddxdodooodddddxxxxxxxxkkkxxxxxxxxxxkkkkkkkkkkOOOOO0KXNNNNNNXXK0Odlccoxdddddoooccccc::clodk0KKXXKKKKXXNNNWWWN0d;...........
kOkkkkkkOOOOKXXxO0OxxododddoodxxdooodxkOOOkkxxxxddodxkxxxxxdddddxxxxxxxxxxxkkkkkkOO000KKKKKKKKXXNNWWWWWWWWWWWNNNXK0kllodxkxdxdoolllccccclllodk0KKKKK0KXXXNNWWWWWWWKl..........
OOOO00OkkOOO0XXK000OxxdoddddxxxkdlloxkOO000OkkkkxooxkxkxdxxOOkxxxxxxxkkkkkkkkkkkOO00000KKKXXXXXXXNNNNNWWWWWWWWWNXOkxllKXKOOkkkxdolllllllodxxxO0KKK0K0KXXXXWWWWWWWWWWKd,.......
OOO00OO00OOO0KXNKO0OkkdddxxxOOxxollodk0KKKK0000OkxddxkOOkkkO0kkxkOkxxxkkOOOkOO00000000KKKKXXXXXXXNWWWNNWWWWNNWWWWNNXOd0NKKKK0OOkxdddooooodxkk0KXXKK0O0KXXXNNWWWWWWWWWWXo......
kO00OOOO0K0O0XXNXdkOkOxxxkkkOkxolclook0KKKKKK00OOOOxdkOO0OO00OkkkkkxxxxO0KK0O0KK00O00000000KKKKXNXXKNNNNWWNXNNWWWKWWNOOXXNNXK0K0kxxxdddoodkxkkOKNXK0OKKXXXNNWWWWWWWWWWWWx.....