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