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