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