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