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