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