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