;;:::::::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.....