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