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