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