=====%%%%%%%&&&&&&%*;;+?>>>?=%%%%%&%%&&&&&&$$$$$#####&?=###=)&$$$$%$$$$$$$$$$$$$
===%%%%%%%&%%%&&%=>-^,:>>??=%&&&&&&&&&&$&$&$$$$$#######$##%!;*&&&+:?&$$$$$$$$$$$
=?==%%=%%%%%=>)!:~^,~:)>?=%%&&$&$$$$$$$$$$$#$$$$####$$&%%==>+>=%&%*!$$>=$$$$$$$$
=?====%%%%)*:-~^^-!*!!)>=%&&$$$$$$$$$$$$$$$#$#$#####$&&&=?=%=?%==%%&$+:;=$$$$$$$
==?=?==%%%%*~-;;;;:::;*?%&&$$$$$$$$$$$###$############$$%=%%%&$%?&$&&+::=$$$$$$$
=======%%%%%);--~-:::::?%&$$$$$$$$$$$$$#$$#############$&%&%%&$$&$$$$$?%$$$$$$$$
=%%====%%%%%);-~~--~~~!?%&$$$$$$$$$$$$$$$$$############$%&$%&#$$%%&###########$$
=%%%%%%%%%%%)!-~~^-*)>>?%&&$$$$&&%%%%%%&&$$$$##########$&%&&#$%=$%#@#$$$#$$$$$$$
===%%%%%%===:~^~~;+=+=>?%&&&&&&==??>???=%%&&$$#########$&%$%#&==&&#@#$$$$$$$$$$$
???======%%=**!!!)+=+=??%%%%%=?+++)))+>?=%&&$$$########$&%#$#$&&###@@$&&$$$$$$$$
????????=%%=>!!!!)+?)=?>%=???+!::-:::!)>=%&&$$$########$%?###$$$&$$#@#$&&$$$$$$$
=?????=====%?;!!!)+?)?>>%==?+;~^^^^^~-;*>?%&$$##########$$##$$&&$@#@@@$%%$$$$$$$
==??=?======>;!!**+>*?>+%%=>!~,,,,,^~-:;*+>=%&$############$$$###@@@@@#&$$$$$$$$
=>>======%==?;!!*))+*)>*&&?*-^,,,,,^~~-;!*)+>=%$########@#######@@@@@@@$$$$$$$&&
?+>>>>>>?%=%>;!!;***)>=%&%+-^,,,,,,^^~--:;!*)>?%$######@@#@#@@@@@@@@@@@#%$&&&&&&
>)*!)*!*+%%%);;*+?=&&$$$&=:^,,,,,,,^^^~-::;!!)>=&$####@@@#@@@@@@@@@@@@@@%$&&&&&&
?>>++!!*+=%%=?%&&&&&&&&&&>~,,...,,^^~~-:;;!)>?=%&$$###@@@@@@@@@@@@@@@@@@?&&&&&&&
>>>>)!;*)+>??=%&&%%&&&&&$)^,.,,^^~~-:;!)>=%&&&&$$$$###@@@@@@@@@@@@@@@@@@%$&&&&&&
)))+)+!:!))+??%&&%%%&&&&$):!!!!;:::;!)?%$$&==%&$$#$$$##@@@@@@@@@@@@@@@@@%&&&&&&&
++++)>)*!)*+%%=&&&&&&&&$$?)>?%%=?)!!)>%&&?)+=&$####$$##@@@@@@@@@@@@@@@@@%&&&&&&&
=?+)++!!*+)>=%=&&&&&&&&$$>;!!*+?=?)*+?%%?>?%$######$$$#@@@@@@@@@@@@@@@@#%%&&&&&&
&%=?=+;)?>??==%&&&&&$&$$$?+>>>==?>*;*>==?&&%#$###$&%&$#@@@@@@@@@@@@@@@@$=&&&&&&&
$&&==*!+?====%&&&&&&&&$$$??&?=$$%>!~-*??+=>>=&$$&%=%&$#@@@@@@@@@@@@@@@#&%&&&&%%&
$$$&?!!*>=%%%&&&&&$$$$$$$>!?+)??>*-,,;>>*)+>??????=%$##@@@@@@@@@@@@@@#&&%%&&%%&&
$$$&%*;;!)?=%&&&&&&$$$$$$+~;+>>>*:^,.:++!;!!**))>?%&$#@@@@@@@@@@@@@@@&%&%=&%%%&&
$$$$&=+**)+>=&&&&&&$#$##$+^~-:;:-~,,.:>>)!;;!!*+?%&$##@@@@@@@@@@@@@$#$%%%=%%%%&&
$$$$$$&=>+>>?&&&&&&&$###$?~~~~--~~^,,;>=>*;;;*)>=&$##@@@@@@@@@@@@#&%$&%%%=%%%%&%
$$$$$$&&=++??%&&&&&&&$##$%:-----~~^,,:+==+!;!)>=%$##@@@##@#@@@@@$%%%&$%%%=&%%%%%
$$$$$$$&%?>??=%&&&&&&&$$$$);:-----^.^!>=%?*!*+?%&$##@@@@@@@@@@#&%=%%=%%%%?%&%%%%
$$$$$$$$&%>++=%&&&&&&&&&$$%!;:----~-*=&&&%)*)>=%$##@@@@@@@@##$%%====%%=%%>?%%%%%
$$$$$$$$$$&?*?>?%&&&&&&&&$&>!;:---!?=&##$$>)+?%&$#####@##$$&%%======>=%%=!%%%%%%
$$$$$$$$$$$&)??*+&&&&&&&&&&%);:-~^^!*>%&&=>+>?%$######@$$&&%========>%%%=>&%%%%%
##$$$$$$$$$$?>?+=&&&&&&&&&&&=!:-^,,,~:;>>>>>?=&$#######&$%%==??=====?&%=%>&%%%%%
###$$$$$$$$$=++=&&&&&&&&&&&%*;:~^^,!+)%&%===%&$$######$%&%%==????====%====%%=%%%
#####$$$$$$$%)=&&&&&&&&&&&>:~>;^!:!&&$$####$$$$#######&=%=%==???????=====%%==%=%
#####$$$$$$$&+%&$$&&&&&&&=!*>)^:?)=&=%%%$###$$$######@&=%=%?????????=====%%====%
#####$$$$$$$&>&&$$$&%===%&&%;.:=>**>?>?%$##$$$#######@&=%==??????????=====%=====
#####$$$$$$$$=&===?=%&$$#$&:,!=&?**)%$$####$$$######@@$=%==?????>?????====%=====
######$$$$$$$=*;=&$###$&?=*-+%&%%>*!)?%&&&&&&$#######@$====?????>>????==========
######$$$$$$$?>%##$$$&=~!+)?&=%%%%>*!)+??=%&$########@#==???????>>?>????========
######$$$$$$$&&$$$$&&&:!??%&+>=%%%%?+>?=%&$$#$#######@@%=???>>>?>>>>????========
#########$$$$$$$$$$&&>^)?%&++%&&%%%%>>%&&&&&&$#######@@$=???>>>>>>>>?????=======
#########$$$$$$$$$$&%~-+%&%*=&$%%%%=;:!)+>?%&$$######@@@=?>>>>>>>>?>?????=======
##########$$$$$$$$&&:^*?=%++%&$>%%=!::;!)+>=%&$#######@@$?>>>>+>>>?>>????=%=====
###########$$#$$$$&*.;+>=>!;)=%,;::---:!*+>?%&$$#######@#%>>>++>>>???????=%=====
###########$$#$$$&;.~!+*:-:!)+>!--~~--:!*)>?%&&$$#####@@@#=>>>>?%%=%=???==%==%%%
###########$$$$$%~.,^-~^-!)))?>>>):~-:;!*)>?=%&&$#####@@@@#%?%$##@@@#=??=====%%%
###########$$$$$+..,,,~::-~~!++>??>:-:;!*+>?=%%&$$######@@@$&$$#@@@@@&??==%==%%%
###########$$$$$?^,,^-~^,~:)?==?>=%?;:;!*)>?==%&&$$$$####$&&&&#@@@@@@#%===%%=%%%
############$$$$%-,,,,,^;>%&$$$$$&%%%*::!*+>?==%&$$$$$##&%%%$#@@@@@@@@$===%%%%%%
#############$&&&!^,^~;+&&%%$$>+?$$&=!--:!)+>>>?=%&&&$&===%$@@@@@@@@@@@&=%%%%%%%
##########$&%%=%=*--;)=$$&&&$$+++>%&=;-;!**)))**+?=%%=>?==$@@@@@@@@@@@@#%%%%%%%%
########$&%=???%=*:;+>=$$$$$$&+++>?;,^:!+)**!;;;!>??)*+>%#@@@@@@@@@@@@@@$%&%%%%%
#######&=??>=?+?&+:!+>=$$####&+++>?=~^-)>+)!;::;*>>!!)+=###@@@@@@@@@@@@@@&&%%%%&
######%?+*>>>%++==;;*+=$$####&++>>?=>~~*?+)*!!!*+):;*+%######@@@@@@@@@@@@#$&&&%&
####$%>)*^;?+==+?%!:!)=$#####&+>>??=%+~-+>)***))!-:!)%#########@@@@@@@@@#####&&&
###$??+):-!)+>%?>?*:;)=&#####&>>?==%%&*-!>+))))!-;!)&$##########@##@@@##$$$###$&
###=?+>+::-;;:*>>>*:!)=&#####%>?==%%&&%;;)>+));-;!+&$$$$$##########@@#$$&&%&&$$$
##&>?+>>)-~;;;;!)>*;!+=$#####??==%%&&&$%;!+>);-;;+&$$$$$$$#########@#$%%&&%=%&&$
#&=+?>)+*;:--!;;!**;*>%$####&??=%%&&&$$$>!*>!:;;+&$$$$$$$$$$######@#&&&%%%==%$#@
%%>+=?++;~~-:::~-;!;*?&$###$?==%%&&$$$$$$+!;:;;+&$$$$$$$$$$$$$###@#$$&&%>>==&#@@
?=>+?>+)!--~:~~^~;;:!+%$###===%&&&$$$$$$#&!;;!>&$$$$$$$$$$$$$$####$$$&%>*)>=#@#@
?=++?>+);-!!-^~~~:-~:)=&##$=%%&&$$$$#####%!!*?$$$$&&&&&&$$$$$$###$%??>?++?%$@#$#
=?++?%?!;!+?!-!;--^~;+%$##>>%&&$$$######&**)=$$$&&&&&&&&&&&$$##$#%??>+)>>?&@@$%&
=?++>%=+-:>%?++!;^^-*=&##&)+&$$$#######$+)+=$$$&&&&&&&&&&&&$$#$$&=?>))+)?%###&%&
?=++>%=%)*)+=%?+:^~!?&$##?>>=$#########>+>%$$$$$&&&&&&&&&&&$#$$$=>+*!!*+&##$&&$&