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