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