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