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