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