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