@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#8#@##W@#W#8@8W##W##88XX==+#===+-=--==*HX----===++***X88@W@@@@@W@@88#WW@@WW#@@#W#W#8@@@@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WW##8@##W###8@#W#####88X=+===88==X=*+X8#8=-----*HHH8X+-XHXX8@#@@#8W@##@@@W@@@#@@WW###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@8##W#W##W@###W#@WW###88X==-=-==X#H+XH88X=---X=#@@#8XX---*XXXXX8WW@#@WW#8@@W@@#@@@@#@@@8W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@8#8##8#W####W##@WW###8HH+-----=++X+8#HX***+H8#8@==*X-----*XHX*XX8####WWW##@#@@8@W@W##@@X8@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@8WW@###W#WWW@#W@WWWW#8HXX------==X=+****X*8#X*=+***--,,---XX8XXXXH#####W#W8#@W@@W@###88@W@@@@@@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@@@#W##8WW@#@WW@#WWWWWW888*=-===+===*===++====++**+---,...,---8H8XX*XXH#88##W###8WW@#W@#@@8X#8#W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#WW#####W@@W@WWWWWWW#8H*+=*H8XXX++==--------------,,..,,---=HHXX*X**XX888##@WW8##W#WW@@@@@888@@@@@@@@8@@@@@@@@@@@@@@@@@@@W@@@@@@@@@@@@@W@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@#8#8##WWWWW@WW#WWWWW#8#W#8X+--===+==------------,,,,,,-----==8XXX****XXH8X8W@WWW##@W@@@@@W@W@WW@@@W8W@@W@@@@@@@@@@@W@WWWWWWWWWWWWWWWWWW@WWWW@WW@W@@WW@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#H#8#####W#@WWWWW#W#W#8HX=---X8W8------,--------------------==+*******XH8####HH#WW##888#@W8W@@W8#@@@@@@@@@WWWWWWWWWWWWWW#W#WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#W#88#W#W#WW#WW#WWWW#88X*X##W@@-------,,,-----==--------------=+******X88##W@W@@@@@@@@@@@W@@@@@@@WWWWWWWWWWWWW#WWW####################W#######WWWWWWWWWW
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#W8W8####W###W#####WW8888@WHX=+=-------,,,-----=+-------------==++**XXH88###W#@@@@@@@@@@@@@@@@##WWWWWW###########################################W######
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@X888##W@####W###W#W###8#8X*+=---------.,--=+8XX*-------------==+*XXH888#W@##@@@@@@@@@@@@@@@@W@WW######################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@@#W88HH88@WW@#W###WW#@8@@HXX+=------------=XH88X=-------=+*+---=++*XH888##8@#W@@@@@@@@@@@@@@@@@@########################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@@WW#8#8#88HH@@WW@@@@W#@#@W@8+=----------=+XHH8H*-------=X#@=----=++*XHH888#W###@@@@@@@@@@@@@@@@@W########################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####88###WW##8HWW@@@@@@@@@@@X=-------------=*+=----*H88#X====--==+*XXXH888#W##WW@@@@@@@@@@@@@@@@@W###################88##888888888888888###8#############
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@X@W##8#8#8##@8@W@8@@@@@@@@@@@@W@#=-----------------=X8888H=-=+***+++++**XXH88###WW#W@@@@@@@@@@@@@@@W@#######88888888888888888888888888888888888888888888888#
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-@@=@@@@#W8#W##88#W#@#W#@@@W@@@@@@@@@@@@@@@X+===-=--------=X####H=--+XHHX**+==+=+*X888##W#W#W@@@@@@@@@@@@@@@@##8#8888888888888888888888888888888888888888888888888888
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@X-8HH8=*H*+- ,-*#8#8#88#8#W#W@@#@@@@@@@@@@@@@@@#@@@@*+++====---=+*H@@+=--*H888XX*=--===+XH888#W@W###W@@@@@@@@@@@@@@@88888888888888888888888888888888888888888888888888888888
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@@@@*+H+--*--`---.*X#H88######W@WW@@@@@@@@@@@@@@@@@@@@@@H+++=======++++**XH8888X+=---==+*XH8888@@WW#888W@@@@@@@@@@@@@@@8888888888888888888888888888888888888888888888888888888
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@==X+``-`---=-H-*X88#8#8#W#WW@@@@@@@@@@@@@@@@@@@@W@#@@W*+**++++++*++*XXXXX*+====+*XXH8888#WWW#8HXXX8W@@@@@@@@@@@@@@@88888888888888888HH8H8HHHHHHHHHHHHHHHHHHHHH88888888888
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@@@@@@8@@@@@+.   `-===----*XX888H##@W#XX#@@@@@@@@@@@@@@@@@@@@@@@@@@HXXXXHXXXXXXXXX**+++**XH8H8888WWW#88H*++*XW@@@@@@@@@@@@@@@888888888HHHHHHHHHHHHHHHXXXXHHHHXHHHHHHHHHHHHHHHHHHH88
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@@@@@@@W@@@@8@@@@8=` .`-`-=-=-=H88XXX--------------==X8#@@@@@@@@@@@@@@@@@@@@@888888HHHHXX**XXHH888H######HX*XH=-=+HW@@WWW@@@@@@@@@#8HHHHHHHHHHHHHX8H8*+=========++**XXXXHXXXHXHHHHHHHHHH
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-X#W@@@@@@@@@X@@@W#@@W8@ . ,`.=--=X=-8H88------------------=+XX+8@@@@@@@@@@@@@@@@@@@@@@#88HXXXXXXXHXH#WW#####H+++**=*---=#8@W######@@@@@@8HHXXXXXXHX8H=-----------------==+*XXH8XXXXXXXXHHHHXX
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=.=*H+##@WWW@@8#@#@#@@W@WH@8-,,,--==+-=88-------,,,,------------*X+==+W@@@@@@@@@@W@@@@#@#@8XX**++=++*X8#####8H*=--+==-------8=*+++====-----=-======HH=---------------------==+**XH8WXXXXXXXXXXXX
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@X--X---*888W@#WW@@@W@@@W@@#H@@#-.---+=+=8X-----,--,,,,,,-,---------++==----+====8-================+======*++*+=----------------------------------+H8------------------------=-=++*XX8##8XXXXXXXXXX
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HW--@@@8X*+X8#@##8HHW@#8#@#@W#@WX=--XXX88X---------,,,,,,,,,,-------------*----===-=--========+*+=+=+==-=--=-----======++====--==--------------=X8*---------------------------==+**XX8##W8XXXXXXXXX
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#=#@@HH*H888XX+=W@@@@WWH+@@#*X--XX*X*-------,,,,,,,,,,,,,------------=--=-=-=-===*XXH*XXX+*=**=++=====+==-+==*X+=====++====+++*+==++=------*++--------------------------===+**XHH8##WX******X*
W8#@##@#W##8#W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WHWW8#8@WX=X@X#H***H8HX==*=8@8@@@8@@#8-=XX=HXH------,.,,,,,,,---,,-----=----=---=---=---------==++++*XX*+*==++==*==+=====-======++=+=++**==+++++++*++X=*+------=-----------------==+=+HXH8####*********
@H@@WW8@W8W+WW8#W8W###@#8#@@@@@@@@@@@@@@@@@@@@@@@@8#W####@@@@@W8.*-HX---X8XX+==*=@H@@@X@@#XHHXXXXX-------,,,,,,,,----,,-----=X+=-------,,,,,,,--------==++X*+*====-=XX====+X======+++==-======-=++X+++*+X+*+*=+--===---------------====+**XXH8####+********
8*@@@@@@W######@#@@@XHWW@W@H@@H#XH8#W@W@@##8XW##@@@@#WW#8#@W@@#H    ---.`*H8#888X8#8@@+#@88*-**X**---------,,,,,,---,,,,----+*=-----------..```.,,------==++*HXHH+++X++*XHHX++===+*+==+++========+==++*X**X*X8X8**X---------------====+**XXH88###W**+*++***
@8@@@W@@W@@#@@##@@@@8W#-#@@#X@@@#W#WW@#8WWW#*#@@@@8W@8W@WWX#8#`,`        *8#H#W+##8H#*W#@@8+XXX-XX----------,,,,-,,-,,,,----+*---=--=+---,.``````.,------==+**X8*+*X*H++==++-----------=======+=+**++==+=*HXHX8HXXH------------=====***XXXH88####*+++++*++*
@@@@W#@#@@W@@8WW@W=@@@@WX@@#@#@HH@@@@W##W@8@@##W#@8#W#W##8@W@@#XHW8@8- =+8###W@WH#8H+##W-@#XX88H+*--------,---,,,,,,,,,,----=+-----------.```````..,------=+++*XH8XXXXH----------------------=+*+X*+X**+**X88888HX-------------==++**=XXXH8888###=+=+++++++
@@@@@@@-#@@@@8##@W#@@@@@@#@8@@#@@@@@8@@@8##@#WW@##H+WW######8H##*+X-X###XW=XX,=HH8*=--8@W@WHHHH8X*,-------,,,,,,,.,,,,,,,,----,,-----,,.```` `````.,-------=+***X888--,..`.......,,-----------===+*X*X**+*XX8H8#H-------------==+**XXXXHH888#####@@@@--====
+*#W@@@@@W#W##WW#W@@@HX#@#@#W@##@@8W@W@@@#*#WWW###H8H88######+8X@#*8*--8*H8H-,=---**==X#H8#8XX88*--------,,,......,,,,,,,,----,...``````      ````.,,------==+++***-.```````````..,,----------===++++++X*XXX888#=------------==+*XXXHHH8888#####@@@@@@@@@@@
=++*X#####WW######8####W##W##8WW####8#88#8#*8####888888#88##W##`-=8@@H##X8XXHXX8XH8X++XHH*@#8#XHX-------,,,.......,,,,,,.,----,.``             `..,,--------=+++*-.````   ` ````.,,---=--+X*X*++++**XX8888X888#*------------=+++XXH8888888######@@@@@@@@@@@
===+++*H#######8##W#####8888#8#W##8##8#HH8#88H8X*88#88X8888###W   -WX@@###88@#W8W88#-XXXX#8@8#*H*---------,,...`..,,,,,-,------,.``           ```..,--------====-.```        ```,-------+H8#HX*=+++**XXH*XH888#-----------==+**XXXH888888######@@@@@@@@@@@@
======+++*888########8X##W###88#*##88#888HX***X*+*+H8H8=XXX8##8+  ``888#W@8W##8#888#HH8H8#+#WW8X+`--------,,,.....,,,--,,,,,,----.``          ```.,--------=====.`           ```.-----==*XHHXXX+++**XXXXHHHX*8=-----------==**XXHH88888########@@@@@@@@@@@@
===========**HHHHXXX8HH88X8###8#8##888HX*X**+*HX*+=X+XX*+=--H#8@.`--`@888@@8#@@@@#@#888H8-H*WW#H-`---------,,,....,,,,,,,,,,,,-----.`       ```..,---------====,``           ```.,----===***+*+=++**XXXXH888X8-----------=++*XHH8888###########@@@@@@@@@@@@
-=======-====+++XXX*HX*8888#8#88##HHHXXX***+**X++===+==-==-``+88* -X=`##8#W@@W8#W8#8888=-=8*8##* ---------,-,,,..,.,,,,,,...,,-------.````````.,,---------=====,``           ```..,------------==+*XXXXXH8#88-----------==+*XXH88888##########@@@@@@@@@@@@@
---=---=========++*H888#######88#X#HX***+++***X**==+*+=+---` `8H#``XX.`#8#8###X##H88X8=+=--8+#8-,XH-------,,,-,,,.,,........,,,---------......----------===++=-,````          ````..,,---------=+***XXXXH##*-----------==+*XH8888###8#########@@@@@@@@@@@@@
===-=--============++88##8#8#8####88X+X***+****+++=+*X++=-,   .8X-`=XX- +X88###H8#=X=-++X---X88-,-H8-----,,,,,,,.,..........,,,,,--------------------=--=+++**X-.```           `````..,,-------==+*XXXXX#@+---,--------=+**H888##H###########@@@@@@@@@@@@@@
====--=----=======-==++*H8##W#W@#WWWH+*8X**+=-,-===**XX*+*-. ` =#*,+8-=--`88+##8#8##88=##8HXHX8---X8X-----,,-,,,,,,,,........,,,,,,,,,,------------==+++****XH#-,.```````      `````..,,------==+**XXXX8W=---,--------==**X888##############@@@@@@@@@@@@@@@
====-=----------========+++H=@@W@@@W8+XXX*+---.====+X8*+++--`-``.+X.8-8#8+88HHH8XX-+X#X=-=--+8HX=-*88H-------,,--,,,,,,.......,,..,.,,,,,,--------=+=+*+**XXX8#---,.``````````````..,,-------==++***XX8#---,---------==+*XH88###############@@@@@@@@@@@@@@@
====----------=========+++=+++H@@@@W#*+=*+--,---===+XHHX++=-=++X+H888,  -X888XX*++===-=`  `,=X8#8XX8888X---------,,,,,,,,..........`.........,,--------=**XX8WX=----,,.........,,,,----------+++****X#*--,,,,--------++*XX888##############@@@@@@@@@@@@@@@@
====---------===========++==++++=8W@8+*++**==+=-+==+X8XH*===*H888HXXXH88X.` .`-`      ,,..-X=##WWWWWW@WW#=--------,-,,,,,,,,,,...`````````````....,,,-------=-------------,-,-,------------===++***H8--,,,,,--------==**XH888#############@@@@@@@@@@@@@@@@@
===-----------=-========++++++++++++*+*+XX*XX*X=+==+X888X===X8X88HX*XH888*=--..`-```.--.XH#*#8#W@@W@@@@WW#8+----------,,,,,,,,.....``````````````......,,,-----------------------------=======+++X8--,,,-,---------==+*XX888############W@@@@@@@@@@@@@@@@@@
==------------=--======+++++++++=+++++=+XXXXXXXX*+==*888X==*X8HX8H**+X8888XX*--,,,--*X8W@#=88@@@@@@@@@WWWW#8HX=---------,,-,,,,....``````````````````......,,----------+=------=---==-==+++++++*X---,,-------------==+8H8888#8#########WW@@@@@@@@@@@@@@@@@@
=----------------====+=+==+++++++++++-+++++*HXXXX+==+H888*+*X8H888X*+X8XW#XHX*+=*=HH8##W@HX#W@@@@@@@@W#W#888H8+++=------------,,....``````````````````````.....,,,--------=+++=+++++*+********+--------------------=+*XX88###8888888##WW@WW@@@@@@@@@@@@@@@@
=---------------===-========++++++++++++++++++*HX*==+X888X==XH88H8H*+*X##*X+XXX8-888*##@@+88W@@@@@@@W###888888+++X=------------,,.....`````````````````````````.....,,---------=+*+XXXXXXXXXX----------------------=+*XH8###8888888##WWWWW@@@@@@@@@@@@@@#*H
==------------=-==========++==+=++=+++=++++++++++++=+*H88XX=*X888HHX++H8+@+=+=-++XX*W#8@+X##WW@@@@@@@###8##8HH+=X-----------------,,,,...``````````````````````````````..,,,---------=XXXHX=----------------------==+*X88##888#8###@W@@WWW@@@@@@@@@@@@@@W#@
==--------------=--=========+==+=++++++++++++*++++=+++X*HX+X=X88888H*+H8##H*=-*=X*888#@*+88WWW@W@@W@@#####8HH+=+--------==------------,..````````````````````````````````...,,,,,,--------------------------------==+XX88##888888WWW8WWW@@@@@@@@@@@@@@@W@@@
=----------------====================+=+++++++++++++++++XX+==*88888HX+X#@@#X-+-**XX-8#@XX#8WWWW@@WW@@##W##HHH=++-----------===---------,,...`````````````````````````````````....,.,,,,-------------------------===+*XH8##88888W@#@@WWW@WWWWW@@@@@@@@@W@@##
===---------------=====================+===+++++++++++++++++==H888H8X**#@@#+X+*X**X88#W=8H#WWWWWWWW@@####HH8**X=-----------====---------,,,,.....```````````````````````````````.......,,,,-------------------===+**XX888#88WWWW@@@@@@@@@WWW@W@@@@@@@@@@@@@
======-==-===-=----=-=--=====-===================+++++**+*+++++8W88HH*+8@WX-*+**X=X++@#+8HW#WWWWW###@###HH8HXXX--------------=+==----------,,................`.``````````````````............,------------==+====***XH88##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+==========-----------=-======---=-===============+++++++**+***+++XHHX+H@@H=+=+XX+X-H@XXX#WWWWWWWW#####H8#88*+X------------------------------------,,,,,,,,,,,,,,......`````````````....`.```.,,,-----------=*X***XXH88###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@
*+======---------------==-=-----==---=---=-========+==++++*******++++*+*W@8=--=X+X-8#@=8X##WWWWWWW####8####*+*=--------------------,-------------------------------,,,,,.,.,,.,.......`````...,,,,,,-------===+X8XXH888###@@@@@@@@@@@@@@@WW@@@@@@WWWWWW#WW@
**++=====------------=-------------------------=========+++**********++==+8---+XX*=-##*X8##WWWWWWW###88#8#=-----------,---,,,,,,,,,,,,,,,,,,------=-----------------------------------,..```.......,,,------===+X88888###@@@@@@@W@@@WWWW@@@@@@@@@WWWWW####W
X**+======--------------=-----------------------=-=========++*********++++++=-*8*-=+WHXX###WWWWW##8H8+----------,,,,,,,,--,,,,,,,,,,,,.,.,,,.,,,,,-----==-------------------------------,,.``````....,-------==++X888##8W@@@@@@@@@@WWWWWW@@@@@@@@WW#W###8#8
HXX**++=============------------------------------------=====++*********X******+===H@=XX#########X-------,,,,,,,,,,,,,,,----,,,,,,,,,,,,,,,,,,,,,,,.,,,-----*HX+++=====------------------,..````......,,--------=+*H#88W@@@@@@@@@@@W@WWWW@@@@@@@@WW####8HX*
8HHX***++=========-----------------------------------------=====+++*+******XX*X*+++++++=++*==----------,,,,,,,,...,,,,-----,,,,,,,,,,,,,,,,,,,,,,,,,.,.,,,-,---=+XH8#####8X***++==+===---,..```...,,,,,,,--------=*XX8#@@@@@@@@@@@@@W@@W@@@@@@@@@WW###8HH-=
888HXX**+++========----------------------------------------=======+++*+*************++==-----------,,,,...........,,,----,---,,,,,,,,--------,-,,,,,,,,,,,,,------=+*X88##WWWWW@@@#888H=-,......,,-,--------------=*XX8W@@@@@@@@@@@@WWWW@@@@@@@@@WWW##W8XXX
##88HXXX**+++======-------------------=------------------------======++++*********++===--------,,,,,.....`````....,------,,,,,,,,,------,----------,-,,,,,----------==+*X88##WWW@@8XXX*+-,.....,-------------------=*XX8#@@@@@@@@@@@@W@@WWW@@@@@@@@@@WWW@#W
###88HHXXX**++=====--=----------------==-------------------------=======++*******++==--------,,,.......````````....,,,,---,,,,,,-,-,-,----------,---------------------==+*XH8#8#W#*=----,.....,,,--------------=----=*XX8#@@@@@@@@@WWW@WWWWWWW@@@@W@@W@@@@@
#####88HHXX***++====--------------------------------------------==========++=+++++==---------,.......````````..,,,--,-----,,-,--------,---------------------------------==++XX888#=---,,.....,,----------------==---==*XX8W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
######888HXXX**+++======-=---------------------------------------=============++++==--------,,.......`````..,------------------------------------------------------------===+**XXX--,,,,.....,,----------------===---==*XX8#@@@@@@@@@@@@@@@@@@@@@@@@W@@@-@@
8#WW###888HXXX***+++=====-===---------------------------------============--==-=++===--------,........`.,-------=+XXHHH**+===----------------------------------------------===++**--,,,,......,,----------------======-=+XHHW@@@@@@@@@@@@@@@@@@@@W@@@@@@X=X
8#W#W###888HHXXX***+++===========--=------=------=-----------======+=-===-=-======+++=------,,....,,,,...-------=*H#8#####8888XXXX*+=---------------------------------------=-====---,,--,.....,------------=----=*+=====+X88W@@@@@@@@@@@@@@@W@@@@@@+=X#@@@
XH#WWW####8888HXXX**+++==============---==-=-=-====-----=--=-===========-==========++++=-----,.....,,,,,------+=+X8#888888##8##88##8888H*====----------------------------------===---------,....,-----------=-----=X+====-=XH8W@@@@@@@@W@@W@@@@@H+X#8W@W@@@
XH8#WWW#####888HXXXX***+++++++==============-=========--===============-=-=========++*++==----.....,,.,-----+=H#WW######88##8888#8888XXHXHX**X+==-------------------------------------------,....,--=+------=------=***+=---*HH#@@@@W@@@@@@@*=#@@@@@@@@W###
+*XH#WWWW#####888HXXXX******+++===================================================+++*+++==---,,.,..,,-----+8######W#W@W####8H888X**XXXX=+XX**=+==-------------------------------------------,.`.,---=*-----==-----=*H8X=----=XH#W@@@@@@H=#@@@@W@@@####W@W@
+++XH8WWWWW#####88HHXXXX***++*+++++============================================++++++*++++==------------X#8888####W@@@###88XX**+*+=======-=+==+=+====-----------------------------------------,...,---+*----=**----+X88H*-----=*8#@@X+#@@@@W@@W#W@@@@W8HX*X
++*XXH8#WWWW#####888HHXXXXX****++++++=+====-===================+=================++++*+++===--------=**X888##WWWW@@WWW#88HX*+++=====------=-==--===---------------------------------------------,,,---*H*---=XH*===XH88H*=----=+H##@@@@W@WW#@@@@@#HXXH8@W##
+++***XH#WWWW#####88888HHXXXX*****+++++++=================================++=++++++++*++=+====----=++*HH888#####WWWW####8HH**+==------------------------------------------------------------====---=+*H8H=--=XHHX*XH88HX*+=---+X88#W@#W@@@@W8H*X8#@W####8##
===+****X8WWWWWW####8888HHXXXX***+*+++++++==============================++++++++*++++*+++==+*+=-*=+=*XHXH888##WW#W##888#88X*+=-----------------------------------------------,,,,,,----------+XXH88HH888H---+X88HHH8HHXXX+=--=*H88W@WW88XX8#@WWW##88####W#@
-==+++**XXH#WWWWW######888HHHHXXX***++++++===+======================+==+++++++++++***+*++=+++*+====*XH88###8WW@WWW###8888HX+==--------------------------------------------------,,,--------=+*X888#8888H----=*H888HHHHHH*---=+X888X8#W@WWW@W#######W@@WW##W
--====++***XH#WWWW#######8888HHXXXX****+++++++++===========+======+=+++++++**++*+*********+**X==+*XH888####@@@@@@###88#8XX+==-------------------------------------------------,-------===+*XXH8########*---==*X88888888X=---=*H88#@@@@@W####WWWW@@W@WWWW@@@
---====+++**XH8WWWWW######8888HHXXXXX****X*++++++==========+=+==++++=++++***+******X*XX*X*XXXX*=**X888#8W@@@@@@@##88HHXX*=-----=-----,--------------------------------====---------==+*X88888##########X=--==*X8888888#*=---+*H88W###W@@@@@@@@W@@@@@@@WWW##
------===++**XX8#WWWW#######8888HHHXXXXX*****++++++==============++++++++********XXXXXXXXXXXX*=-=*XH88@@@WH*==--------====----=+=-----------------------------------=++--------==++*XH8###########W###WHX+*+*XH888888#8*=-==+X88#@@@@@@@@@@@@WWWW#WW###8##H
--------===++**XH#WWWW########8888HHHXXXX****+*+++++++===========++++=++++******XXXXXXXXXXXX*==-=+HH*==-----------========+=+*HHHX+=-------------------------,,------------===++*XH88######88888888#88X#*H888W888+H#-W8*8-=+*XH8@@@@@W@WWWWWW#######8##8H+ 
--------====++**XX8#WWW#WW######8888HHXXXXXX*****++++++++++====+==+=+++++++****XXXXXXXXXXXX*+==----------------===+++==+=+XXH888HHHHXX*+===-----------====---,,.,------==**X**XX888#######8HXX*XXXXHXXH8########88####8X+*+*XX+88*####8############=#8H+` ,
----------===+++**XH#WWWWWWW#####8888HHHXXXXXX*********+++++++++++=+=++++++**+XXXXXXXXHHXX*==------------===--------------------------==+*XHHX+*X*+========----------==++**XH888####WWWW#8X+===X+*8X8=X,-+W8#X*X######8HX*XX8-88H=8-WWWW8X#H##8*88=#888=88+
------------====+**XX8WWWWWW########8888HHXXXXXXX********++++++++++++++++++***X*XXXXXXXX+----------==-----,,,,,,,,,,,,,--------------------========+*XXX*++=-------=+**XH88######WWWWWW#H+=---+-+X-8-8X-##=8=#=#-#=#W#-8-XXX-H-W@@@-W@@8-W-#X*+##=8=8+-=X=H
--------------===++*XXX#@WWWW##W####888888HHHXXXXXX********+*++++++++++++++*****X*X***=-------------,,,,,,,,,,,,---------------------------====-==-=*H88+------==+*XXHH88####W@@@@@@@WWX=-----=+*XX88###W##=#-#-#-#-+-XXX,--H+-HW@@@@X*@@@@@@@WWW#W--HXXXXX
----------------==+***XX8W@@WWW########888HHHHHXXXXXX******+**+*++++++++++++++==----------==----,,,,,,,,,,,,------------------------------+++=++===*XX=-----==*XXXH88####WWW#WW@@@@@@8=------=+*H88#####W##########WW#8888XHH8#@@@@@@@@@@@@@@@@##HH--888XHX