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