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