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