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