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