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