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