####S%%S#SSSS%%SS%%%%%%S#SS??*?%##SSS%?**?%%??%###%%%S%???S##SSS%SSS%%%???%SSS%???%S###SSSS%S##SSSS%
@@@#####@#SSSS%%SSSSS%%%S##S%S##@####S%??%##S?%###SS###S??%SS%%SS#@#S%%?*?S#@#S%???%S####@#SS##SS%%S
@@##@@@@@#SSS#SS##@##S%%%SSSS#@@@@@##S?**%#@#S%%SS%%S#@#S%???*?S#@@@#S%?*%#@@@@#S%%?%#@@@@@#SSSS%%SS
SSSSS####SSSSSSSSSSSSSS%%%%%%SSSSSSSS%*+++?%SSS%%????%SSSS%?+*%SSSSSS%???%SSSSS#SSS%%%SSS####SS%%%SS
%?????????????????????******+++*******+++++*******+++*******++***********?*****??????????%%SS%%????%
????*???************++++++++++++++++++++++++++++++;;;+++++++;;;+++++++++++++++++*+*********???****??
***********+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++*+++******
*********+*++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++****
******?*++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*SS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++***
?*****%S?*+++++++++++;;;;;;;;;;;;+++;;;;;;;;;;;;;?#@#?;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++**
S?*****??******+++++++++;+++;;;+?SS%?+;;;;;;;;;;?####@?;;;;;;;;;;;;;;;;;;;;;;;;;;;*??*+;;;;;;+++++**
S?***********%%?*++++++++++++++%###SS?*++;;;;;;*#####@@?;;;;;;;;;;;;;;;;;;;;;;;;;%##@S*;;;;;;+?%%%?*
%%*****++**????%*+++++++++++++*%SS%??***++++++*S####@@@@%+++++;;;;*%%?+;;;+;;;;;;%SSSSS*+;;;+?S####%
S%?****+++*?%%??*+++++++;;;;;+***********???%?*?%S#@@@@@@%???**++*S###S?++++;;;;;+?%??%%?*++*SSS###S
#%***%S%*++?%SSS%%???**++;;;;;;+**??**?%%%SSS??**?%#@@@@#%%S%%%%%%####S%%?*++;+++++*??????%%%%SSSSS%
%???%S##%*+?S####SSS%%%%?*;;;;;;;;*??*???%%SSS##%%%S###@?*%S%%????%S#SSSSS?*++**????%%??%SS#######S%
??%S###@#S%%S%%S#########%*;;;;;+*******??%S%?SS??%%%%SS***+*???%%SS#####S?++?%S%?**SS??S##@@@@@@###
%%#####@@##S?+;+?S#######S%+;;+***+;;+*?%%SS%????%%%%%S%?+;;;;*?S######SS?**?S##S*;+????%####@######
S##@#######?+;;;;*S#####SS%*+***+;;;;;;+?SSS%?%%%%%%%%%%*+;;;;+?%S#SSS%??**?S####%++*+???#@#########
SSSSS##SS%%?*****?%SSSSS%%?*+*++;++++++**%%S%%SS%%%%%%S%?+;;;;+*?%%%???**?%S####SS?***?%??S##SSS#S##
%%%%S###S%%%SSSSSS%%%%??%%?*+;;+?%%%%???**?%%S##SSSS#S#S%?++?%%%??********?%%SSSSS%%SSSS%*??%%%%SSSS
?????%%%??????????????*+****+++**??????*+*?S#@@#####%S#SSS%?????*+++++++++*??%SSS%S%%SSS%?*?%S%SSS??
****+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+%@@@@@###%S###SSS%?+;+;;;;;;;;;;;+++++++++*******?%%S%?***
***+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;*#@@@@@###%####SSSSS?+;;;;;;;;;;;;;;;;;;;;;++++***%%%?**+++
**+++++++++;++;;;;;;;;;;;:::::::::::::::?#@@@@@@@###########S%*;;;;;;;;;;;;;;;;;;;;;;++++++**+++++++
**+*++++++++;;;;;;;;;;;;;;;:::::::::::+?S%%##%?#@#######SSS##%%*;;;;;;;;;;;;;;;;;;;;;;;++++++++++++*
*******+++++++;;;;;;;;;;;;;;;;;;;;;;;*S%*;;+%+;;?#@@########@@#S*;;;;;;;;;;;;;;;;;;;;;;;++++++++++**
******++++++++;;;;;;;;;;;;;;;;;;;;;;;+S#?++;*?;;;?S######@@@@@@#%;;;;;;;;;;;;;;;;;;;;;;;++++++++++**
***+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;**+++++;;*?%S@@@@@@@@@@@@#?;;;;;;;;;;;;;;;;;;;;;;++++++++++++
++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+?**S#@@@@@@@@@@@@#+;;;;;;;;;;;;;;;;;;;;;;;;;++++++++
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;S##@@@@@@@@@@@@?:;;;;::::::;:;;;;;;;;;;;;;;;;++++
**+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;%#@@@@@@@@@@@@@+:::;;:::::::::::::;;;;;;;;;;;;;++
**++++++;;;;;;;;;;;;;;;;;;;;::::::::;;;;;;;;:;;;;:%#%@@@@@@@@###@@;::::::::::::::::::::;;;;;;;;;;+++
++++++++;;;;;;;;;;;;;;;;;;::;::;::::::::::;;;;;;:*@@%#@@@@@@@@@###+::::::::::::::::::::::;;;;;;;;+++
+++++++;;;;;;;;;;;;;;;;;;::::::::::::::::::;;;;:+#@@SS@@##@@@@@@@@+:::::::::::::::::::::::;;;;;;;;++
*+++++;;;;;;;;;;;;;;;;;;;;;;;;;:::::;::::;;;;;:;%@@@S?####@@@@@@@@%::::::::::::::::;;;;;;;;;;;;;;+++
++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;:;#@@@#?####@@@@@@@@?:::::::::;:;;;;;;;;;;;;;;;;;;++++
++++++;;;;;;;;;;;;;;;;;;;:;;;;;;::;;;;;;:::::::;S@@@#S#@@@@@@@S*??+:;::;;;;;;;;;;;;;;;;;;;;;;;;;;+++
+++++++;;;;;;;;;;;;;;:;:;:::::::::;;::::::::::::%@@@@@@@@@@@@@+::::::::::;;;;;;;;;;;;;++*+++++++++++
++++++++;;;;;;;;;;;;;;;::;:::::::;:::::::::::::;S@@@##@@@@@@@@+:::::::::::::::;::;;;;*?%%%?**%#S????
+++++++++++;;;;;;;;;;;:::;;::;:::::::::::::::::?@@@@#@@@@@@@@@+:::::::::::::::;;;;;;;++?%S%?**??%SSS
*++++++++;;;;;;;;;;;;;;;;;;;;;:::::;;;:::;::::;S@@@@#@@@@@@@@S::::::::::::;:;;;;;;;:;;;;*?;;;++++**?
**++++++++;;;;;;;;;;;;;;;;;;;;:;::::::::::::::?@@@@##@@@@@@@S+::::::::::::::;:;;;;;;:;;;*?;;;+;+++++
***+++++++++;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;:;*#@@@@@@@@@@S*::::::::::::::::::::::;;;;;;**;;;+;+++++
***++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;::+#@@@@@@@@@?::::::::::::::::::::::::;;:;;**;;;+++++*?
***+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;:%@@@@@@@@@S::::::::::::::::::::::::;:;;;**;;;++++*%S
***++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::*@@@@@@@@@@?::::;;:;;:;:::::::::::;;;;;;??;;;;;+?%S#
***+++++++++;;;;;;;;;;;;;;:;;;;;;;:;;;;;;;;:::::*@@@@#?S@@@%::;;;;;;;;;:;;;;;;;;;;;;;;;+%?;+;++?%##@
*****+++++++;;;;;;;;;;;;;;;:;;;;;;:::::;:;;::::;;+?SS?:;%%%+::;:::::::;:::::::;;;;;;;;;;%?;;+*%S#@@@
***+++++++++;;;;;;;;;;;;;;;:;;;;::;::;::::;:;;;;::;?%?+:*??+::;;:;::;;;;;::::::;;;;;;;;+%*;*?S#@@@@@
*****+++++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;:;;;;;;;;:*%?+:+??*::;::;;;::;:;;:::::;;;;;;;;+S?*%#@@@@@@@
*****++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;::;;;;;;;::+??*;;??*;:;;:;;;;;;;;:;;;;;;;;;;+++%@##@@@@@@@#%
****+***+++++++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;::;;+*???+++**+:;::;:;;;;;;;;;++++++++;+%%SSSS#@@@#%*%
*******++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++*??*+;;;;;;+;;;;;;;;;;;;;;;+++***+;;+?**????%#S??S@
******+++++++++;+******?*********++++++*++++++******+*+++++++++++++++++++++;;+++++++++***%%%%%??S#@@