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