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