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