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