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