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