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