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