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