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