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