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