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