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