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