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