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