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