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