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