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