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