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