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