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