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