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