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