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