+++++============------=++-#*-#*:::#@+:-:#%==@%-:..:.:.:.....................................::::::.........::::. :---:.::... -##%@@@**.-++@@##@@++-.**@@@%##- ...::.:---: .::::.........::::::.....................................:.:.:..:-%@==%#:-:+@#:::*#-*#-++=------============+++++
=====+##===-----:::::::::-:@@*@@#**@@@#*#@*+**=..-@- ...............................................: ..:... ... . . ..=%%%@@%+: :++@****@++: :+%@@%%%=.. . . ... ...:.. :............................................... -@-..=**+*@#*#@@@**#@@*@@:-:::::::::-----===##+=====
====*@%+::::::::-:.......:-::--:#+:#@+ .=. ..:...-=:-#=:-:....:-..::::... . .. .. .... .......:-.. . =+#=. -%++%@#+-.-+===++===+-.-+#@%++%- .=#+= . ..-:....... .... .. .. . ...::::..-:....:-:=#-:=-...:.. .=. +@#:+#:--::-:.......:-::::::::+%@*====
---=@+=----::.:#%=+-:..:. .......+=#@+-##=-----====+#+=:..:---=++#**+--:.......... .---=+#+*#*+*#*#*= :#. =: . .+=+@@%=+*=*+**++**+*=*+=%@@+=+. . := .#: =*#*#*+*#*+#+=---. ..........:--+**#++=---:..:=+#+====-----=##-+@#=+....... .:..:-+=%#:.::----=+@=---
::::::::::::.:%+-:+*-:**:.....-.. .#@%==-.:* ++ ... :.:=%%%%%%%@#******+: *%##%%#%#%%%@*%###+-::. -. ==:....... :*++@@@*=+*#=#%@@%#=#*+=*@@@++*: .......:== .- .::-+###%*@%%%#%#%%##%* :+******#@%%%%%%%=:.: ... ++ *:.-==%@#. ..-.....:**:-*+:-+%:.::::::::::::
::::-==---:-=++=++==--=-==-@@+@-:-:#@%====*@+@%====++*#@#*@@%%%%%#+++**+*: ....*#*#####*#%%%*##*##%%+*@%*#%#%= - - : . +=*@%@**%*+=@@@@@@=+*%**@%@*=+ . : - - =%#%#*%@*+%%##*##*%%%#*#####*#*.... :*+**+++#%%%%%@@*#@#*++====%@+@*====%@#:-:-@+@@-==-=--==++=++=-:---==-::::
+++++***++===-:::. .:--+*%++@=-%@%++*@%%@@@@@@@@%=%#+=**@@@%@#+++*+++: +##*##***%%%%#%##**##+#%#%%%***#*@@#*#* :**#@@%*%%+==@%@@%@==+%%*%@@#**: *#*#@@*#***%%%#%#+##**##%#%%%%***##*##+ :+++*+++#@%@@@**=+#%=%@@@@@@@@%%@*++%@%-=@++%*+--:. .:::-===++***+++++
**##**##*++====--===-:::..: . :=:#@*#%@%%%%%%%@%%@%#%@*=*+#*#%@*+++*+=+. =#*******#%%%#########%%#@%######@@%%###+== :+%@@*+%%+==@%%%%@==+%%+*@@%+: ==+###%%@@######%@#%%#########%%%#*******#= .+=+*+++*@%#*#+*=*@%#%@%%@%%%%%%%@%#*@#:=: . :..:::-===--====++*##**##**
%%#+######%*#@%%#####%#%%###::-#*%@@%#@@%%%@%*%@@%%@%%*+#+@@+=*%@#*+++===-.::. =********##%##%%#**++%%@%%#%%%##%@%%%###*#@. ..-::.:.-*%@%+%#===++==++===#%+%@%*-.:.::-.. .@#*###%%%@%##%%%#%%@%%++**#%%##%##********= .::.-===+++*#@%*=+@@+#+*%%@%%@@%*%@%%%@@#%@@%*#-::###%%#%#####%%@#*%######+#%%
##**####==*%%%#%#**#****%%##*=*@#*#@%%@#@%%@%%%%%%@@@%#*##%@@@@%%*+++*+==+%#*###******++*****#++++#%%%**-=*#**##@%%@%%####@%%%##***%:=###*#****##*++@@@==--++-====-++--==@@@++*##****#*###=:%***##%%%@####%%@%%@##**#*=-**%%%#++++#*****++******###*#%+==+*+++*%%@@@@%##*#%@@@%%%%%%@%%@#@%%@#*#@*=*##%%****#**#%#%%%*==####**##
#+**#=#=+*+%###=**#%#***+#%##*#@%@%@@*#@%@@%%%%%%%%%%%%%%%%@%%@%%*=+=***=+**********+*****+=+*++*+*#%%##**%%***#@%%%%##***@%%%##*##%#****++**++****#@@@*===**++**++**===*@@@#****++**++****#%##*##%%%@***##%%%%@#***%%**##%%#*+*++*+=+*****+**********+=***=+=*%%@%%@%%%%%%%%%%%%%%%%@@%@#*@@%@%@#*##%#+***#%#**=###%+*+=#=#**+#
##==***++#*%%%#++**%#%=+#####*%@@@#@@*%@@@@%**%%@@%@%####%%@@@@@@*==++*#=*#***************+==+++##%@@@@%@@**%##%%%%%%#***#@%%%###*#%*********++**#+*=-++%%===%%@@%%===%%++-=*+#**++*********%#*###%%%@#***#%%%%%%##%**@@%@@@@%##+++==+***************#*=#*++==*@@@@@@%%####%@%@@%%**%@@@@%*@@#@@@%*#####+=%#%**++#%%%*#++***==##