''''.'''''''''''''...........'...........................'.'..........................................,''''''''''''''''''''''''''',',,,,,,,,,,,,,,,,,,,,,,,,,,'''''''.....''''''''''................................      
'......'''''''''''............'.................,'...............................'....................'''''''''''''''''''''',''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''''''''''''''.......'.......................        
........'.'''''''''''''...............'''................................................................''''''''''''',',,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''''''''''''....................         
.........'''''''''''''..................'...........................................................'.'.'''''''''''''',,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''''''.................          
........''''''''..'....................................................................................''''''''''''''',,',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;,,,,,,,,,,,,,,,,,,','''''................          
....''''''''''''''''''.........................................................................'........'.'''''''''''''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;,,,,,,'',,,,,,,'''''''..............          
''''''''''''''''''''''................................................................................'..'''''''''''''''''''''''',,,',,,,,,,,,,,,,,,,,,;;,,,,,,,,,,,;;;;:;;;,;,,,,,,,,,,,,,'''''''''............. ..      
'''''''''''''''''''''''....................................................................'.............''''''''''''''''''''''''',,,,,,,,,,,,,,,,,;;;;;;;,;,,,;,,,,,;;;;;;;,,,,,,,,,,,,,,,,''''''''''................    
'''''''''''''''''''''''................................................................................''''''''''''''''',''''''''',,,,,,,,,,,,,,;,,;;;;::;;;;;;;,;;,,,,,;;,;,,,,,,,,,,,,,,,,,'''''''''..................  
''''''''''''''',''''''........................................................'.................'.'''''''''''''''''',','',,'''''',,,,,,,;,,,;,,,;;;;:::;:cc:c:;::;;;;;,,,,,,,,,,,,,,,,,,,;,,''''''''''............'.......
''''''''''''''','''''''............................................................'...........''.'''''''''',',,'',''',,,,,,,'',,',,,,,,;,,,,,,,;;;;:::;:ccccc::cc::;;;,,,,,,',,,,;:,,;,,,,,'''''''''''''''''''''',,,''...
''''''''''','''''''''''........................................................................''''''''''''',,,,,,,,,',,,;,,,,,''',,,,,,,,,,,,,;::;;::::cc;;:;::ccc::::;;;,''''',,,;,,,,,,,''''''''''''''''''''''',,,,,,,'
'''''''',,','''''''''''''............'...................'....................................''''''''''''''''',',',,,,,;,,,,,,,,,,,,,,,,,,,,,,;;c;:::::::;;;:::::::::;:;;,''',''',,,,,,,,,,''''''''''''''''''''''',,,,,,,
''''''''',''''',''''''''''''.........'..........'.......''..'..........'''..'''''......''''..............'''''',,,,,,,,,,;,,,,,,,,,,,,'',,,,,,,,;;;;:;c:::c:cc::::::c::::;;,'''',,,,,,,,,,,,',''''''''''''....'''''',,,,,,
''''''''''''''',''''''''''''''''........'''..''.'...'''''''''''''''''''''''''''''''..'''''.................',,,'',,,,,,,,,,,,,,,,',''''',,,,,,,,,;;;:::::ccc:c::;;lc:::cc;;;;,,,',,,,,,c,,,,,,,'''''''''''..'''''''',,,,,,
''',''''''''''',,,,,,;''''''''''''.''''.''.''''''''''''''''''''''''''''''''''''''''''''''..................''',',,,,,,,,,,,,,,,,,,,''''',,,,,,;;;;;::;:cc:cclc;;:c::::;:::;;;;;;;:;,,,,;,,,,,''''''''...''''''''''''',,,,,
''''',''''',,',,,,,''',,'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.....................''''''',,,,,,''''',,,,,,,,',,,,,;,;;;;:c;::::ccc::c;;;:::c:c::;;;;:;;;;;,;,,',''''''''''''..''''''''''''',,,,,
''''',,''''''''',,,'',,,'','''''''''''''''''''''''''''''''''''''...''''''''''''''''''''......................'...'',,,,'''''',,,,,,,,,,,,,,,;::;;;::::;:;:;:c:::c;:;c::::;:;;;;:;,;,;,;,,''''''''''''...''''''''''''',,,,,
,'',,,''',,'''''','',,'''''''''','''''''''''''',''''''''''''.................'',,,,,'''......  .   ...............',',,,,,,,,,,,,,,,,,,,,,,,;c:;,;;;;::::::;:;c:cc::c:l:;;;;:;;,;,,;,,','''''''''''''....''''''''''',,,,,,
,,',,''''',,'''''''','',,,'''','',,'',''''''''''''''''','''''.................'',,;,,'.......          ............''''',,,,,,,,,,,,,,,,,,,,,,,;;;;;;::cllc::;:::c::c:c::c;;,:,,,,,;,,,,,,'''''''''''......''''''''''',,,,
,,'',''''''''''''''''''',,',,,,'',''''',,',,'',,,,,'',,,''''''..........  .....'',;cl'.......           . .........,'',''',;,''',,,,,,,,,,,,,;;;;;;,;l::odc;;c;;::::;;:::;;;,,',,,'',,,,,,,''''''''''.......''''''''''',,,
','''''','''''''''''''''''',',,,,''''',',,,,,,,,,,,',,,'',,''''.........   ....'',,,,''......              .........',,,,,,,,,,,;:;,,;:;;;c;;;;,;,;;;;:;:;;,;,;,:;;;;;:;;;,,,,,,,,'',,,,,'',''''''''''.....'''''''''''''''
,'',,,''''''''''''''''''''''';,,,,','',,,',,,,,',,,',,,,,,,,,'''.............',;codo;''...    ..         ..........'',,,,,,;,'':odolod:,,::;;;;;;;:;;;;:;;;;,;,,;,;;;;;;;;,,;,,,,,,'',''',''''''''''''......''''''''''''''
','',','''''''','''''''''''',;;,,,,,,,'',,,,,,,,,,,,,,,,,,,''''''....  .,'...;;'''''..,:l;.           ..........'''',,;,,,,'.....'::;,'..,;:::;;;;;;,;;:;;;;;;,,;;;;;;,,;;,,,,,,;,',,,,,',,'''''''''''........''''''''''''
',','''''''''''''''''''''''',;c,,,,,,,',,,,,,,,,,,,,,,,,,,,,'''''...........',:;'......'ccc;.     ......'''''''..',,,,,,,......,cdkkdoc''..';c:;;:;;;;;:;;;;:;;;;,;;;,;,,,;,,,,;,,,,,;,,'''''''''''''''........'''''''''''
',''''''''''''''''''',,'''',,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,''''.....  ',,cdxxxoc'...,cloOO;:lddddk0dk0OOkkkkdoloocc:do'',..:oodlcldkl';'.':d:;;;;;;;lc:;;;;;;,:;;:,,,,,,,,;,,,,,,,,,','''''''''''''''''.....'''''''''''
,'''''''''''''''''''''''',,,,,,,,,,;,,,,,,,,,,,,,,,,;;;,,,,''''''...... .,'odoc:lldol,.::ldol:loodoodocddxdddlcc:;;llcdkOxd:,:lll:;cdxxo'''';:xc:;;:;;;:;;;;,;;;;:;,;,;,,,,,,,,,'',,,,,',''''''''''''''''''''....'''''''''
',,,'''''',,'',''',,''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''........ .',oddoc;;:lloc:,...;,:;:c:c:.:cc:,,;;:c:,',c;:ldxxkoclc;,:lxOkc.'.,;;d:;:;:::;:;;:;;,,,,;;,;;;;,,,,,,,''',,,,''''''''''''''''''''''''......''''''
,,,,,''',,,,',,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,;,,,,,,,'''........  .  ..;dkdlc,,::;,,,,''..',;:::',:::;,'...':cccccc:codddddolcolddc.''''',l:;;;;:;;;;;;;;;;,,,,;;;,,,,,,,''''''''''''''''''''''''''''''''''.....''''''
,,,,,,,',,,,,,,,,,,,,,',,,;,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,''.........  ..  .',:lc:;:;,.',;:,..,;;;::,.;:::;::::::clcccc,..:dooodddxkkl'.',,;;:dc:;;;;:;;;;;;;;;;,,,',,,',,,''''''''',''''''''''''''''''''''''''''.....'''''
,,,,,,',,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,;;,,,,,,,,,,;;,''..........   .....'.'.,,,;..';;:;;;;;;;;;:::;;:::::::::lolodl:;lolooo,,:ckOxc;,:odo:;:c;:;::;:;;;;;,;,;;,,,,',''''''''''',''''''''''''''''''''''''''''''....''''
,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,;,,,,,:,,,,,,,,,,,,''............    .......,,,,,;cc:;;,;;;;;:cdool::::::::cdOxdk0kdloollll:'',cxxxk:;:c:;:;;;;;;:::;;;;;;,,,;,,,,,,,,'''''''''''''''','''''''''''''''''''''''.....'''
,,,,,,,,;,',,,,,,lc,,,,,,,,,,,,,,,,,,,,,;;,,,,,;,,,,,,,,'..............    ....'..,,cx;,ol;:c;',,;;:::;clldddoldOd  ,d0Ol:c:,:cllc:lldoxo::c::::;:;;;;;:;,;:;,,,,,,,,,,''',,,,,''''',,''''''''''''''''''''''''''''''.'''''
,,,,,,',;''',,,,,',,,,,,,,,,,,,,,;,,,,,,oc,,,,,,,,,,,,,,'..............  ...''''...'d' .oxxkd;';,:c:;,;,,dOO0XXK0Ol,,oklc;;::ccooooooddddc:c:;::::::;;;;;,,;,,,,;,;,;;;,,,,,,','''''''''''''''''''''''''''''''''''''''''''
,,''''''''','''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,'...................'''...;oocollcol.........','cddoodkkk0K00Oko;;::clo,,'lc'dxlo;;;:;;:;;;;;;;;;;;:,,,,;,,,;:,,,,,,,,,''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''',,',,,,,,,,,,,,,,,,,,,,,;,;,,,,,,,,,,,,,'''.................'',:clddococo:odl.....   .,oxdooxoxddxkOO0KK0Okdoldl:;locoOkO;;;:;:c;;;;;;;;;;;;;,,,,,,,,;,,,,,,,,,,''''''''''''',,'''''',''''...''''....''''
''''''',''','''''',,,,,,,,,,,,,,,,,,,,,,,,,;;,,,,,,,,,,,,,,,'''.............';ldddddolco:olodxoc,....;ldxxdodocxdlxxxOkk00000KOkddoodxkxdOc;;;::o;;:::;;;;;;,,,,,,,,,,,,'',,,,,,,,,'''''','',',,,,,,,,;''........'......''
,'''''''''''''''''''',,,,,,,,,,,,,,;,,,,,,,,,,;;;;,,,,,,,,,,',,,,''.......,;':ooddxxdddocl:;:ldxdl;':lddlc::llcdxdxxkxxkkkkxlloO00OdocxdlOc;;;;;,,;:;;:;;;,,,,,,,,'''''''''''',,,:c,'''',,,,,,,,,,''.....................'
'''''''''''''''''''''','',,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,'''',''.....':c,:oodxdoloodlccc::;::::cloooll::::cclodoccodxkxxxxdodO0KKk;lklkl:;;;,;;;;,:;;;,;,;,,,,,,,,'',,,,,,,,lOWMxd:,,,,,,,,,,''........................
,''''''''''''''''''''',,''',,,,,,,,,,,;,,,,,,,,,;,,,,,,,,'''''''.'..'.':lllldkdxxdl;;:lcc:;cdxxO0KXXXXXXKOkxxol;:c:;:cdxxxxxxooodOOO0OxkxOd;;;;;;;;,,;;c,;;,,,,,,,,,,,,;,cxO000NMMWWNN0o,,,,,'''..........................
,,''''''''''''''''''''',,',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'''''''..'''':lo:,'cdxdddollc:;;cx000KKKKKKKKKKKKKKKK0ko;,;ccloddxxo:,,;dOxO0kkOOk:,,,;,;;,,,,,,;,;,,,;,;;;,,,ckXXNNXKXNNXNNWNWk'........    .  .................
,,'''''''''''''''''''','''''',,,,,,,,,,,,,,,,,,,''''''''''''''''''''';oodc;looddolc:;',oxddkOO0KKKKKKKKKKKK000Okdloo,',:ccooooolldkkxk0O0xo'...''''',,,,;,,,,,,,,,;,;lOXXXNXKKKKXNNNNN0c....            ..................
,',',''''''''''''''''''''''''',,,,,,,,,'''''''''''.........''''''''',cooxodddollc:;,...':lcdkkO00KKKKKKKK000OOxdclc'....,,;:coodddkxdxOOKKc..........''',,,,,;;;,,;lOXKKKWKKKKKNNXXNOc...'cl;.          ..................
,,,'''''''''''''''''''''''''''',,,,,,,,,'''''''.............'''',,,,:,;coooollc:;,,'     ,';odkO00KKKKK000OOkdo:,..     ..',;:clooodc:ccOKl..............''',,,;;dKNXKKNNXKKKNXKXNk,....dXXXd.           .................
'','''''''''''''''''''''''''''',,,,,,,,,'''''''.............'''',,,;l:';oolllc:;,,'      l;.:coxkO0000000OOkdlc;'.'     .;'',;:ccloo:;;lk0x...................',kWNXNWWNX0KXXXXKx,...;dXNKd.   .       ...................
'',,'','''''','''''''''''''''''',,,,,,,,''''''............'.'''',,,:odoloolcc:;;;,l;...,lll.;:lxxxkOOOOOOOOko:;,''c;...,okd',,;::looloxkkk0....................'dWNNWNXXNXXXXXd....;ONNNo.      .        ..............'''
,,,'''',,''',,''''''''''''''''''''',,,,,,,'''...............''',,,,;lodoooolcc;;;,ocololc:,;::ldkkOOOO0OOOkdoc::;;;;lldoldxc,,,;:clooxxkkkK:........... ......l0WNXXXKKKKKNKo,...cxXNKo. ........  . ..    ........'''''''
,,,,,''',',,',,'''''',''''''''''''',,,,,,,,'''.............''',,,,;;llodddoolc;;;:xdoloooloodollxkkO0000OkxollooododdddddxkO;,;;ccooddxddkkk..........   ...lKWXKKKKNNNNNNo...'o0KX0l............ . .....   ......''''''''
,,,,,,,,'',,'''''''''''''''''',,'''',,,,,,,'''.''.'..'''''.''',,,;;;cl,:oooolc:;,;xOOOOOOOOOOxl:okOOOOOOxdlcoxOO0O0000000000c,c::collc:;oxxK.....      ...dKNXKKKKKKNNWKXMKxcxKXKKN'............ .................'''',,,'
;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,','''',,,,,,,,,,;;;:::l;';collc::;,lOOO0000000Odlcllooolcc:cokO0KKKKKKK00000Ol'l;:ccl:,,:oxkd:...... ....oXNX00XXKKKXNWNl,lXMWNKKKX0,''..'.......................'''',,,,,,
:::::::::::::::::::::::::::::::::::::c::::::::::::::::::::::::::cccl;cllloolll:clcloxkOOOOOOOOkkxoolc:clodkOO00000OOOOOOOkxxl.l;;ccclooddodok''''....;kXNNNKKKMMXXWMMMMMN0NWXWXXXWd:;;;,,,;;;,''.....''''''''',;;;;:::::::
oooooooooooooooooooooooddoooooooodddddddddddddddddddddddddddodddddxxlcldooccllllo:doddddl:lldolllllooooxlcccloloc::cdxxxdld00;ll;ccc:looddokXxollclo0WWNXXWNXXMMNKWMMMMWWNXWWWNNNWdolllllllllolllccccccccclllllooooooooooo
00000000KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKXXXXXdoc:;;;:lolldcodxxc:cc::;',,,,,','','',,'',;;:lloo:;c;kKO;oo;:;,''',lddkOKNNXXWMWWNMWNMWWWMMNKXWMMWNWWWWWWWWWX00000000000KKKKKK0000000000KKKKKKKKK0KKK
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMWlloc'''',::ckdxkxc::::oxc:cllc:::;;:::ccccclllcodoc:okOko,dc,,'''',:oddddlKXKNWWMMMMMMMMMMWMMMWMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMO,loolclccc:cOokxc;:::.:.':,,:llllllolclclooooolxc:cdxxoc:,xd',;:clooodddc'dXk0NXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMOc;coollllc::dKko:::lo::;,.;;;;,;:ccccc:;,;:cooc:ccdoc;cccl,x0;,;;:lllloxxolxkxdKKKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
NNNNWNNNWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWk:llolcccccccokkcc:,;,,;loooc:cc;;;cclllllol:;:codxxl:::ccc;dOc',::ccccoddoodddxxoKMMWWWWWWMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
OOOOOOOOOOOOOO00OO000000000000000000000000000000000000000000000000Occcccc::llloodxdddc'..'::;,,,;clol:::c:;;::coddddkkdlool::ccool:;;;;;:llcclldkO0KNWKOOOOONNNNNNNNNKOOkkkkkkkkkkkkkkkkkkkkkOOOOOOOOOOOOO0000000OOOOOOOOO
ooooooooooooooooooodoooooooooooooodoooooooooooooooooooooddddooooooooloooxxddoxxkOkOkOkkdo:c:::coddoc,....,:colloddddxxxxd:::lolodxxxooc::;:dolOWNNNNNWl:::cONXXXXXXkc;;;;;;;;;;;;;;;;;;;;;::::::cccccccllloooooooooooooooo
:::::::::::::::::::c:::::::::::::::::::::::::::::::::::::::::::::::cxkkOkkxllllllllldkkxk0xlccdxxddlcclodxdoolooooodoool,',;:cokkkkkOKXO:0N0ldNWXXXXXO..'dKXKKKXKl................................'',,,,;:::::::::::::::::
;;,;;;;;;;;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,;;;;;,,,,;kkkOkOk;''''''''''lxxxkKo;;lodxxxkkkkkOkkxdooll::;;:;......,dxxxkOKNWk0lcONXNWXXXk'.cKXKKKX0l.                            ........'',,;;;,,,,,,,,,,,;,,
,,,,,,,,,,,,;,,,,,;;;;;;;;;,,,,;;;;;,,,,;;;,,,,,,,,,,,,,,,,,,,,,,,o000Odoooc;;;;,,;:cl:;;:xO,';clllododdkOOOOkdoc;,,,,.';'.'',:clxkOO00XN:'XKXNXXXx' lKK00KXO;                                   ....'''',,,,,,,,,,,,,,,,,
,,,,,,,,,,,,;,,,,,,,;;,,;;;;;;;;;;;;;,,,,,,;;;,,,,,,,,,,,,,,,,,,,,ok0k;''',oolc:::ldo''''.;k,'',;,,',''',:dkxdoooc:;'...c;'',;...;kOOO0NWxcWNNK0d,   ;xKXXx;                                     ....'''',,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,;;;,;;;;;;;;;;;;,;,,,,,,;;;;;,,,,,;,,,,,,,,,,,:dko'''';co;'''',oo;''.'l;;;,,,''....';:clllclllccco;'l'...'....dO00XW0c;oKkc.       .,.                                     ......',,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,;,,,;,,,,,,,,,,,,;;;,,;;;,,,,,,,,,''''''''''',:lc:;;;dl''''''ol:;,',,,,,,,,::clolc::;,,,,;:coooooll:....;;,,oxxokxl,':xl.                                               .....'',,,,,,,,,,,,,,,,,,,,,
,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''''''''''',,,,,,cl''',,;:...'......',;loooooolcclo:;;,,;;:c::;;;;;,dkoc:':,;okd:cdkd.                                             ......',,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'''''..........'''',,,,,,,',.',,,,'''''',',',::lodol:,;;:,,,'',',;:';:lodxxc,,,,,;;cloddddxxx,                                              ....''',,,,,,,,,,,,,,,,,,''
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'''''............'''''',''.'',,,'''......,,:cxkOOkx:...',.':cco;cl;:lodxxx:'..,;;::,,;:loooldk:                                               ......'',,,,,''''''''....
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''''.'.'.'........'...''.'''.........,:lc;;coo:..''....;ccooOodxkOO0O;....',;,,,,,;lcccllx0k                                .             .........................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'''''''''''''''.''..':.',,''.''.........';:'...':'',',....,cloddldxxkOk,''...'',,',,,cl;l,:dOOX:                               ..              .............          
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''''''''''''',l:;,;,,,,'..''........;:,'';,'',;c;..,:clxl,;:ccol,...'''''',;;;;:c:ocoxk0XO                               ...               ........  .          
,',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''''''''''''col:,;;,,,',,...........';:'';;,;,;;::'::odk,';:clc,..'''''.',;,;;;;c::loxkkKK;                            .....                  ..                
,,,'',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''''''oo;,;,:;,,,,,;,'...'.....'::''::,'.,;:',lxK:;;;:c:'..'''''',,;,';;;:;;;,l:dOKXo                ....    ........                                     
,',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'''''',,'oo::'',,',,,,,;,,'..'.....,c;::c;..,:,.:lldooddxc''''',,'',,;;;,:;,;''';clxOXN0.             .....   ..........                                     
'','',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''',,c0occ::,''''',,,,,,''....;,ll;,:,...''.'::ldxxxd:'','',,,,,,''''.....',:lodxOKNWX.               .  ............                                     
'','''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;xkolccc:ccc:;;;::;;;;'..;:::c:,;',......';cl:::c:,,,,,;,,,,;;;,,,''',;::clcldxkOKNNO'                ............                                     
'''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;colccccclooxkOxdooc,;:;d,,:;';c,',,,.''.,;,;;;,,,,,;;:cclol::cc:'',,,colcclcccllodkk0XXx:.            ......... .                                       
''',,''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,;,ldxkOOO000O;..l:,x:.:;'';,.,'..';;;;:;;,,;,,::ccllldkko:;l:,..,l:xkkOOkxdoodx:,;:lkO;            .........                                         
'''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;ldxxkOOOO0k,...l;'l,,,..;,....,;:::::::;:;;;::clooooxkx,'.:clc,.o;:xkkOOOkkxxOO:.                ........                                           
''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;,,cxkxxkkOOOOO,....o;,,,'.......,::c:cccccc::;;;:cclxkxxxOd..'lO0O,.o:clxkkOOOkkkOOOO'           .........                                              
'''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;ldkkkkkOOOO0l.....dc;''.....'';:cclcolcolllc;;::;:oddxxkOk..;;:ll'.lcld:lkOOOkkkOkkkKl..      ............                                             
'''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,ldxkOO000KK0k''....xl,'....,:,,;c;;dodddl;ccc:;cclldlodkOO0,';:cll'.loodc d00OOkkkxxkOKd...........'''......                                            
'',,,,,,,,,,,,,,,,''',,,,,,,,,,,,,,,,,,,,,'''',,,,,,,,,,,,,,,,,,;ldxkO00KKKKXK,.....'0;...';:cclcc:cldxxxxlccloooloodooodkO00k:cc:co' ckOOd ;0000OOkkkxk00x.......''''''''.....                                           
'',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'''''',,,,,,,,,,,,,,,,,,loxkO00KKKKKXx'.....;x'..:c::::cllodxxxxxxxdddollclooodxxO000OkOl:cx, :oddl .00000OOOOkxO00x.......''''''''.......                                        
'',,,,,,,,,,,,,,,,,,,,,,,,,,,,'''',,,,,,,,',,,,,,,,,,,,,,,,,,,;lodkOO00KKK0KK:'.....,....,:locllodxdkxxxkkkkxxddodkxxxxxxxlcoooxcclk,.,cll; .kO000OOOOkxkOO0:......'''''''''.......                                       
','',',,,,,',,,,,,,,,,,,,,,,,'''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,cloxkk00KK0KKKk'''...,l.'''.',cl;;::clococloddxdccc:c::::lcc:lcc:ddo::..'::c,..:O0000OOkkxdxO0k.......................                                      
','''''''''''''''''''''',,,,'''''',,,,,,,,,,,,,,,,,,,,,,,,,,,llodxkO00000KK0;'''';dKx';;;;,.,c.'',;ll:;,'.c;;';;::cclllcllllc:;:oxd,..,::::...xO0O0OOOkkxdkO0d.....................                                       
'''''''''''''''''''''''',,,,,''''''''',,,,','''',,,,,,,,,,,,:lodxkO00KK0000l''':dKXNl..'';,'':;:;:clllc::;c:;,:ccc:ccccl:::,'',;:oxxd;::::c...:OO000OOkkxxxkO0,...........                                                
'',,'''''''''''''''''''',,,,,'''''''''''''''''''',,,,,,,,,,;lodxkOO00KKK00x,,:kXNNXo...',,...'lcccc:ccccco;'.',,:;''''',,'''''',:cdxkkxcccc....kO000OOOOkkxkkOo.   ......                                                 
'''''''''''''''''''''''',,,,'''''''''''''''''','''''',,,,,,ldxkkOOO00KK00k:okXXNKx:',;;::,'.':ldolcclloddo'..,,:cl,,,;,,,,,,''',;llxkkOx,;;....,kO00OOOOOkkkkOO.  . ......                                                
''''''''''''''''''''''''''',,''''''''''''''''''''''''''''':odxkkOO0000000xKNNNXk:':c::::;;',,l:cooooodddcd,';::clodolc:,,,;,,,,,;cokkkO0,.......lk000OOOOOkkkOOd..........                                                
''''''''''''''''''''''''''',''''''''''''''''''''''''''''''lddxkOO0000000XNNNKxc,.:c:c::;::'c:cccldxddolclc,,cc:clllooddoc,;;,,,;::okOxO0o........dO00OOOOOkkkOOO.......                                                   
''''''''''''''''''''''''''',''''''''''''''''''''''''''''',odxkOOO000000XNNXx:,,',c:cc::::;;lc;clldxxdol;oc;;ccc:llckooodx,,;,;;;:cldxxk00'.......'kOOOOOOOOkkOO0; ..                                                      
''''''''''''''''''''''''',,'''''''''''''''''''''''''''''':ddkOO000000KXNKo;,,,,':cco;;::::lcc'codxkxdoco:cc:cclcclcoOlodxc';,,;::cldxxxkK0,.......;kO0OOOOOkkkO0c...                                                      
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''ldxkO000KKKKX0d;'',,,,;::o:,::::;ccc.cldkkxdocl;llclcllcc:lOooodd,,;;;::ccdxxxk0XO:'......;k00O0OOOkkO0o...                                                      
'''''''''''''''''''''''''''''''''''''''''''''''''''''''',ddkO0000KKXXO,''''''''cc;x,;::::l:cc'cldkkxdll;:llclcccl:;dOooood:':;;:::cldxxkOKX0:.......cOOO0000kkO0x                                                         
'''''''''''''''''''''''''''''''''''''',,''''','''''''''';xxk0KKKXXNNWK,''''''';cc;d:;;:;:cccl,llxOOkdco;llcclclclc:Oklodddo':;::cclloxxkk0KKk'......;0KKKK000O0K0.                                                        
''''''''''''''''''''''''''''''''''''''''''''''''''''''''cl::loodkOXXXNl''''''':::'od;;;,l;lll,clxkkxococolclccccc;dOolddddd:::clloddddxxkk0Kx''.....;xxddddddOKKXk'                                                       
''''''''''''''''''''''''''''''''''''''''''''''''''''''';cxl,ccclllkKXXx'''''';:lccxd:;;l:ollo,loxkkxlx:ool:d:ccc:lOx:oddoddd:lcloxxddodxkkk0Ko.....'xoollllldK00XKo                                                       
''''''''''''''''''',''''''',''''''''''''''''''''''''';xXocdc;clodkkOO0x,,,'',::,cc:;;;lcllloo,loxkxdldcddlcocccccOOx::ldk0oddlloodddooodxxkk0X:....,cdkxxkkkXOkO0Kx.                                                      
,'''''''''''''''''''''''''''''',''''''''''''','''''ckKXXcllxodxkkolx00o,',''';:::;;,;ollocooo,ldxkxxlocxdlccd:lcclxkdooodxddxoloodddoooodxxxkK0,...:::lxkOOOkxkO0Kk                                                       
''''''''''''''''''',,,,,'''''',,,'''''''''''''''':kXNNXkllcdkOOxlcclk0;''''',o;ccc:clcolllodo;ldxkxxoolxdlcoddcccccclllloodddddloxddoooloddxkOKk..';:clokkxx0kxO0KK.                                                      
'''''''''''''''''',,,,,,,,,,,,'''''''''''''''',lOXKX0l;':lcxoddoloodO0,,'''';,,dl::clollcoddo:ldxxxdoooxdollloxl:cclllokddlcccccoddddoooodddxxOKc.cxxxkxxxxodOkOKXKd....                                                  
''''''''''''''',,,,,,,,,,,,,,,''''''''',,ck0;'ONNNOo,''',oldlooxxkOOKO','',',,,d;lolllloclxdl:odxxxddooxxdlcoloddoodxl:ldOxll:cloxdddddkoodlddkOO,okkkOOOOOOxxkOKKK0.......                                               
',',,'',,,,,,,,,,,,,,,,,,,,,',''''''''''oMkdd,XNk:''''',,olloddkOkkkO0,''',',,.llllclclcclddc:odxdxoxooxxd:coodllc:kOdcccl0:cococodddddoololdxkx0dxkk0OkxxxdoddoxKX0...........                                           
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'''''''dOOWWkl;'''''''',looddxxOOOO0Nd'',;.,'.clll:cclc:cdo:clodddodloddo:cooooodcxOlccc;k;lclol:lddxxooddlodxxO0OkO0OkOd:loodddO0x............                                         .
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'',lOWNKKNXc'''''''''':olxx00kOOk0XN'':,,:'':ollcccc,,col;cloddoollcddo:;lllooxlxd,::cco;lclolo:lodooooldldxdkkOxO0OKO.ooddxodk0O............                                        ..
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,o0NXXXXOl,',,'''''''',ooxk0xkkkkO0O';:c':,',lolc:c;.,col;ccodddolocool:;llcoox:Oo,;;;x:c:cllool::llollllllookxkk00O0o.kOkdxddk0x..............                                       .
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,oKNKKKNkc,,',,''''''''''ldxOKxxOkdodxo::x';,.;odccc:..,clc;:codddocl:ool::llloox;kl',:dlc;cllollllc;olodooolloxlxxdkOO,.k0Okkkxk0c.............                                        .
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;dXNK0KXx:,,,,,'''''''''''':xxONXxxOxdd,:;do','.:clll:'..,:l:;;loddoo:l:lol;lcloddd,k;,:xol:::llloolooc:looooocclldddlokd;O0OkOxxkO0............                                         ..
,,,,,,,,,,,,,,,,,,,,,,,,,,,,;:dKKKKXXx;,,,,,,,,',''''''''''cdk0N0ok0KWo,:d;.';.;::l:,...,cc,;,cooooo:c:lol:lclodxccd''od,;;,.cloooodll;:looollcd:lododxOOOOkkOkkO0d.........                                           ...
,,,,,,,,,,;;,,,,,,,,,,,,,,,,:0NOOX0d;,,,,,,,,,,'','''''''''':xkKN:cdk0o;ll'.'',',::'....;:c',,cloool:c;lolcl:oddd'x:''x;;;...'lldodddoc;:loollcl:lcllxox0kxOkkkkOk..........                                           ...
,;,,,,,,,,,,,,,,,,,,,,,,,,,,;o0N0d;,,,,,,,,,,,,''''','''''''':ldxx;,:l,;o:'...',';,...',;::.,,clloll:;,cllcoc:olc:x.,lc;;.....coooddddcl;cldoccccccocd:kxOkkOkkkk............. .                                        ..
,,,,,,,,,,,,,,,,,,,,,,,,,;;oKWOl,,,,,,,,,,,,,,,'''''''''''''''',,;l:,',c,l.....'',;''':;::;.';clllll:;,:ll:::,c::o;:l:;;......;llooodlllc,:ccoccllc::o;x0xOkkkkk'................   .                                    .
,,,,,,,,,,,,,,,,,,,,,,,,,,cOxc,,,,,,,,,,,,,,,''''''''''''''''''',;cdl'':d,..''''..',..,;::;.';:cclc:;;,;llcc,.c:cccl::co......'llloollclc:,::ccc:;;,co:dO0xooc;'...........'.................                            .
,,,,,,,,,,,,,,,,,,,,,,,;;,,,,,,,,,,,,,,,,,,,,'''''''''''''''''''odll;',::...'''.'......,,;,,c:;;l:c,c;';lllcc'lllcccclkx.......clcolclo;cc,,::::;;,'ocl:xddx'..........'''''....................                         .
,,,,,;;,,,,,,,,,,,,,,,,;;,,,,,,,,,,,,,,,,,,,,''''''''''''''''''od:;:';xo.'.'',,''.'....';',;;,.'l,,,:o::lllccll;'.:lllkk'......:cll;::c:cc;';::::,'o;':llooX........''''''''''.....................                      .
,,,;;;;,,;,,,,,;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''''''''''''',c;;c',cdc.''''',''.....':;:'';:,.;.,cccc::;:,',.. ..':okx,......,cl::;cc:::;,,;:::;:l,,.'od:0,''''.''''',,''''''...........................            ....
,,;;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'''''''''''''''';;,,'';cll,'',,,'''....;:'';cc,;:;;:lcc:;:;'............dx:......':c:::::::::;':;;;;d,....,:,oc''''''',,,,,,,,'''''.........................................
;;;;;;;;;;;;,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,'''''''''''''''''''',;loodc,',,;;,''''',::,,:dOd:;;:ccc;;,...............oOx..'..',;;;:::::;:::;xxx:x:...'',,,;:,,,,,,,,,,,,,,,,''''''''.....................................
;;;;;;;;;,;;;,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,'''''''''''''''',:xdlcdd;;;;:;,,,,,,;:;;:cxkOOl,,,''..................,col;'''',;;;;;:::;;::cdkxO0,..'',,,,,,,,,,,,,,,,,,,,,,,,,,,'''''..............'...'.......''''''...
;;;;;;;;;;;;,,,,,,,,,,;;,,,,,,,,,,,,,,,,,,,,,,,,'''''''''''''':l:dlccccxxlc::::;;,;:,;:c;,lxkO0kx......................,cdx:,;;;:;;::;,;;;::cdooddxo;',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''........''''''''''......''''''....
;;;;;;;;;;;,,,,,,,;;,;;;;;,,,,,,,,,,,,,,,,,,,,,'''''''''''',:oxccccccc:oxxxc;;::;;;:::::;:;lx000o.......................,,ckdc;;:;;::;;,,;;;:d:cOOolx,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'''''''''''''''''''''''''''''''.'..
,;;;;;;;;;,,,,,;;,;;;;;;;;,,,,,,,,,,,,,,,,,,,','''''''''',:oddl:c::ccc';lcooccoooc;;,',,;:::lxxxko;......................';cdKd;;,,,;;;,,,;,:d:cx0Kld,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''''''''''''''''..
,,,;;;;;;;,,,,;;;,,,,,;;;;,,,,,,,,,,,,,,,,,,,,,,'''''''':oxdllcccc::::;..':Okxxxo;,;;;;,,,:lodxxxxxd'.....................';ldo::,',,;;,',,coclcld0do'',,,,,,,,,,,''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,','''''''''''''''''''
;:;,,;;,;;;;;;;;;;;,,,,;,,,,,,,,,,,,,,,,,,,,,,,,''''',:oddlllccccc::::;'.''l:oc;;,;;;;;;:c::lloddddkO;..................,,;':oodk;'',,,ld,:dclllllodoo;,',,,,,,,''''''''''''''''''''''''''''',,,,,,,',',,''',''''''''''','
;:;,,,;,,,,;;;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,''',codolllllccccccc,:c,'.;o;oc,;:;;;;;;;,:ooooooodkOo.................''',;:ldxkc,''',,;;ldlllllllodxxo:,',,,,'''''''''''''''''''''''''''''''''''',''''''''''''''''''''''
;;;,;,;,,,,,,,,;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,',;cdolcllllcccccc:,...;;,,'c:,'',,,;:::;clcc:lddxdxdc................,'''''',,,;c,''''';llooolllllloollodoc;,'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
;;;;;;;;;;,,,,<