%%%%S%%%%S####S%%%**%%%%%%%%SS%?******?%S#SSS?***??*******++**********?***+***???????????????%%SS%%%
S#S%%SSSS##@@@@S??**SS?%%S###@@#%???%SS##@###S%SSS%%%%%%%???%%%????%%%%????%??????%%%%%??%%%%S%SS%%%
@@@S????%#@@@#%??%%%#S?**%#@@@@S?*+**?#@@@#%???S##S%*++++******+++++++++++*****************?*???????
##@#%???S###%*++*%%%SS%%?%SS##?+;;;;;+??%%?+++*%S#S%**++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++*******
??SSS%%%?********+**?%%?**++***+++;++++;+++*++*?%S%????*++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++****
?**************+*++++*++++++++++++;;;;;;;;;+++++*****+++;;;:;;;;;;;::;::;;+;;;;;;;;;;;;;;;++++++++**
******++++++++***++++**;;;;;;;;;;;;;;;;;;;;;;**;:;;;;:::;;;;::::::::::::;+**;;;;;;;;;;;;;;;+++++*??*
?%?***+++++++??*+;++;++;;;;;;+;;;;;;;++;;;;;%##*:::;::::;++;;:::::::::;;;;:++;;:;;;;;;;;;;;+++++**??
**?**+++++++SS+;;++;;;*+;;;:+*;;;;;;;;;;;::%####?::::::::;+++;::::::;**+;:::+*;;::;;**+;;;;;;+++++**
***??*+++++S@?;++;;;;;**;;;:+?;;;;;;;::;;:*S#####?::::;;;++++;:::::;??+;::::;*?+;;;;??+;;;;;+++++++*
**+*%?+++;*@#+++;;;;++?%*;;:+%*;;;::;++;;+S#######?:;+*++;;;;+;::;;?%*;::;*??*??+;:;%S+;;;+++*%SS%**
SS?+?S?++;+%%*????%%SSSS%+;:+%%+;::;*%?*;*?%S#####S;;**+;;::;+++++*%%+::;%##%?*?%?+;%@%+;+++%#####?+
@@#%?SS?+;+**?####@###SS%%*;;+*?+;+?%SS?*????%###@%:;+*+++;;;;++++*??+;;;?%S%SSSSS%?S@#?++;+S#####S%
@@#####S?+*???S#####S%%%%SS?+;:;;+*%%SS#SS#S%%%SSS;::;+++++++;++;;;++++***?%%SSSSSS%%##S*%S%###SSS%%
S##@####%*+;+%SSSSSS%%%S#SS%*+;+**+*?SS#?*%????%?*;;+++++++++++++;;;;;++*?%%%S%?*?S#S##%??SS######S%
%%S##@@#S*:::+%S#SSSSSS#####S%?***;;*?*?**?%%%%%*+++++++++++++***++;;;;;;+?%%S%+++%####S?*+*SSSSSS%%
S%SSS##S*;::::;+S##############S*;::;*%?**%%%%%%%?*;::;+++++;+*****+:::;+****++++*?S####?;:;*%SSSS%S
###%SSS?;::::+;:*S##############S+::::+SSSS%SSSSS#%?+::****++++***+:,,,,:+???**??%SS####*::::+%#SSSS
###SSS%;::::;?+:+SS#####SSSSS##SS?;::::?##SS##SS####S?;+?%%?*****+:,:,:::;?SSSSSSSSS%%SS?:::;:*%SSSS
##SSSS?;:::;*?*;;%SS####SSSSSSS%?*+:::;S######%@#@###S?*%SS%%???*;:,,,:+**%SSSSSSSSS%%SS?;:::;+?????
SSSSS%*++++***+++?%%%%SSSS%%%%%?*+++;:;S#@@#######@###S%??%%%???*;,,,:+*???????????????%?*;;;+******
?%%???****+++;;++*?*****%%*******?%?*++S##@@#####@@@@@@#%**?????*;:::+******+++++;+*****************
****++++++++;;;;;;;;;;;;;;;;;;;+++++*?SS?########@@@@@@#S*;;;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++*+
+**+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;+?@S%##############SS?;;;;;;;;;;;;:;;;;;;*???*;;;;;;;;;+++++++++
*+++++++++++;;;;;;;;;;;;;;;;+++++?%%#@@##@@@@######S##SS%%+:;;;;;;;;;;;;::::;*?%S?*;;;;;;;;+++++++++
++++++++++;+;;;;;;;;;;;;;;;++++*%#@#@@@@@#?*?##@##S#@@@#%%*::;;;;;;;;;;;;;;;++;;+%S?+;;;;;++++++++++
+++++++++;;;;;;;;;;;;;;;;;;;;;;+??*****%?;:::S##@@@@@@@@#S?;::;;;;;;;;;;;:;+;;;;:;??+;;+*??????*+***
+++++;;;;;;;;;;;;;;;;::::::::::::::::::::::::%##@@@@@@@@@#%;:::::::::::::++;::::::;?*++*??????????++
++++;;;;;;;;:;;:::::::::::::::::::::::::::::+S#%#@@@######S+:::::::::::;+;:::::::::+?****????????*++
+++;;;;;;;;;:::::::::::::::::::::::::::::::?##@SS@#######@#?::::::::::++:::::::::::;????**?%%%???*++
+++;;;;;;;;;:::::::::::::::::::::::::::::::+#@@#%#########@@*:::::::;++::::::::::::*?%%??***??**+;++
++;;;;;;;;;;::::::::::::::::::::::::::::::,?###@S%#########%;:,::,:;+;::::::::::::+?%%%S%%?****++++*
+;;;;;;;;::::::::::::::::::::::::::::::::::%#####?######@%:;,,:,,:++:::::::::::::,*SSSSSSSSSS%%?????
+++;;;;;;;::::::::::::::::::::::::::::::::,;S##@@########+,,,:::;+;::::::::::::::,;SSSSSSSSSSSSSSSS%
++;;;;;;;::::::::::::::::::::::::::::::::::,%##########@S:,,:+***:,::::::,:::,::,::*SSSSSSSSSSSSSSSS
+;;;;;;;;;::::::::::::::::::::::::::::::::,:%##@#######@?,,:+????*;;;;;;;;;;;;;;;;+*%SSSSSSS##SSSSSS
+++;;;;;;;;;::::::::::::::::::::::::,,:,,,,:S##########@%:,:*?***???????????***?%%%SSSSSSSSS#SSSSSSS
++++;;;;;;;::::::::::::::::::::::::::,,::,,+############+,::;:::::;+*?%%%SSS%%%SS%%?*;+*?SSSSSSSSSSS
++++;;;;;;;;;::::::::::::::::::::,:::::::,:*##########S+,,,:::,:::,::::;;++++;;;:::,,::::+SSSSSSSSSS
+++++;;;;;;::::::::::::::::::::::::::::::::,?########@%,,,,,::,:,::::::,:,,,:::::::::::;;:*##SSSSSSS
+++++;;;;;;::::::::::::::::::::::::::::::::,:S#########;,,:::::::,,,:,:,,::::::::::::::::::+%#######
++++;;;;;;;;;;;;::::::::::::::::::::,::::::::%@###%S##@S:,:::,,::,,::::::,:::,:::::::+?%%????#@@####
++++++;;;;;;;;;;:::::::::::::::::::::::::::::*###%:;S#S?:,::::,::,:,:,:::,,:,,:::::+%#@@@@@@@####@@@
+++++++;;;;;;;;;::::::::::::::::::::::::::::::;?%?:,+??+:::::::::::::::::::::::::+?#@@@@@@@######@@@
+++++++;;;;;;;;;;::::::::::::::::::::::::::::::+??;,:??+:::::::::::::::::::::::+%#@#@@@#@@#######@@@
++++++;;;;;;;;;:::::::::::::::::::::::::::::::,:??+::??*::::::::::::::::::::,;?#@##@@#*;*#######@@@@
++++++;;;;;;;;;;;;;:::::::::::,:,:::::::::::,::+??*;;++*;:,,::::,,:;;;::::::+SS##S##?;:;?#####@@@@@@
++++++;;;;;;;;;;;;;:;;:::::::::::::::::::::;;+*??*+;;;;;;:::::::,:+*+++;:,:*SS*+****;:;?S#####@@@@@@
+++++++;;;;;;;;;;:::+**????*****+++++++++++******+***+++++++++++++++++++;;;+++++*?%?**%S##@#%??%S##%
+++++++++;;;;;;::::::;+?%S%?%%%%%%%??%??%%??%%%?%%%?%%??%%??%%?*%%????????????????%??**%##S%%%%%??%%
*+++++++;;;;;;;:::::::::;*%%%%%%%%%%%%%%%%%%%%%%%%%%%%S%S%S%%%%SSSSSS%SSSS%S%S%SSS%?*?%SSS?S#%%SS#%%
***++++++++;;;;;;;:;::::::;*%%%%%%%%???%%%%%%%%%%%%%%%SS%%%%%S#SSSSS#S%%%%%%%%%%SS%%??%SS#SSSS#S####
***++++++++;;;;;;:;:::::::::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%SS%%S#SS%%%%%%%%SSSSSSSSSSSS##@##SSS#
****+++++++;;;;;;;;;::::::::::;;;;;;;;;;;+++++++++******????????%%%%%S%%%%SSSSSSSSSSSSSSS#######SSS#
****++++++;+;;;;;;;;;:::::::::::::::::::,,,:::::::::::::::::::::::::;;;;;++****??%SSSSSSSSSSSSSSSSSS