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