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