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