?%%%????***+++;+++++;++;;;;::;;;*?*+;*?*;+++**++;,,,;+;+%%%?**?%%*;;;+*+;+?%%S?++*%?????%%???%%??*?%
%%S%?****+++;;;;++;;;;:;;++;:;;;?%?*++++;+++**++:,,,:+++++**+*??*++*????*+?%%%*+????**??????%%????%%
%%??***??***??%%%?++++;++**;;;;+****+;;;;;;+**++:,,,::;;++++++**+;;++***+;*%S%++?*+**++**++**?****??
????????*+;;+**?%*++++;;+*+++;;;;++++;;;;;;;+++;:,:;;++;+;;;;;+;;+++;;;+++?%S?;;++;+++++++++++**+*??
%%%%?%S%%%???*++++++*******?*+;;*??*+;+*+++++++;;;+++++;;++++++;+*???**++*?%%?+++++**+?S%???*??????%
****+********+++++++++++++++++++++;;;;+++++;;+++*???*?*;;++;+;;;+++++++++++++++++++++++***?????????S
+++++;+;;;;;;;;::;:::::::::::::::::::::::::::;+**++*+**;::::::::::::::::::::::::::::;;;;;;;;++??**?#
++++++;;;;;;;;;;;:::::::::::::::::::::::::::::++?*%%%*+;:,::::::::::::::::::::::::::::;;;;;;++??**%#
+++++;;;;;;;:;::::::::::::::::::::::::::::::::;+*%%+?S++::::::::::::::::::::::::::;:::;;;;;;;+?***%#
+++++;;;;;;::::::::::::::::::::::::::::::::::::++??+%%++:::::::::::::::::::::::::::::;;;;;;;;+??**%#
+++++;;;;;;:::::::::::::::::::::::::::::*:,::::;++%%?;++:::::::::::::::::::::::::::::::;;;;;;;*?*?S#
+++++;;;;;;;:::::::::::::::::::::::::::;#?;;::::++*%%%*+:::::::::::::::::::::::::::::::;;;;;;;+?????
++++;;;;;;;;:::::::::::::::::::::::::::%###%?;::;*+*%%*;:::::::::::::::::::::::::::::::;;;;;;;;;;;++
++++;;;;;;;:::::::::::::::::::::::::::;%S###S;:::+++*%*:::::::::::::::::::::::::::::::::;;;;;;;;;;++
+++;;;;;;;;:::::::::::;;::::::,::::::;?*??%S%::::+*++*?;:::::::::::::::::::::::::::::::;;;;;;;;;;+%?
++;;;;;;::::::::::::::;;;;++**++*?+++*?????%?++;::*+++*?;:::::::::::::::::::::::::::::::;;;;;;;;;?S%
+;;;;;;;::::::::::::::::::;?????%SSS#SSSSS%%%%%?:,;*+++*?;:::::::;;+++++*****?*+;;::::;;+**;:;;;+?%%
+;;;;;;;::::::::::::::::::::::::::;;+S##SSS%%%%%;,:*++++**::::::;;;++++++++***+;;;;;;;+++*+;;;;+**?%
;;;;;;;;:::::::::::::::::,,,,::,,,,,,:?SSSS%%%%%+,,;*++++**::::;;;;;;;;;;;;;;;;;;;;;;;;++++++++++***
;;;;;;;;:::::::::::,:,,,,,,,,:,:,::::,:%S%%%%%%%?:,:++++++*+;;++***++****++**+++++++++++++**********
+;;;;;;;:::::::::::::,,,,,,,:,,:,:,,,:,+%%%%%???%*:,:+++++++++++**************??*++++***************
+;;;;;;:::::::::::::::::,,,,,,:,,:,,,,,;%S%%%%%%?%*;,:++++++++++++++++;;;;;;;;;;+%SS%++*+++++++*****
;;;;;;;::::::::::::,,,:::,,:,:,,,,,:::,:%SSSSSSS%S%*:,;**++++++++++++++++++;:::,;**?*+++;;+++++*****
;;;;;;;;::::::::::,,,,,,,,,,,,,,,,,,:,,:%SSSSSSSSSS%?:,;%%%?+;++:;;++++*????++;::;******++********??
;;;;;;::;:::::::,,,,,,,,,,,,,,,,,,,,,,,:%SSSSSSSSSS%*:,:*%%?++;+;::::+*?????++++;:;****????????***?S
;;;;;;:::::::,:,,,,,,,,,,,,,,,,,,,,,,,,,+####SS##S#*,,,,:*?*++++;;;::;*****+++++++++***???????%?????
;;;;;:::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,:S#########*,,,,,+*+++*****+++++++++++++++++???SSS%?**?%%%?*
;;;;;;:::::::::,,,,,,,,,,,,,,,,,,,,,,,,,:S#########+,,,,,:+++++******+++++;;;;;;;+++?%%???*****?????
;;;;;;:::::::::,:,,,,,,,,,,,,,,,:;:::,,,;#########%:,,,,,,;++++++++**++**+;;;:::;;++*?*+++*??*??????
;;;;;;:::::::::::,,,,,,,,,,::,,::;::,,,,*#S######%:,,,,,,,:+++++++++**+**+;;;;;;;;+??++**???+++**+*?
;;;;;;:::::::::,,,,::;;:,,,,,,,,,:,:,,,,?#######%:,,,,,,,,,;+**+++++??***+++++++++*?***%????+++++++*
;;;;;;:::::::::,:**??+:,,,,,,,,,,,,,,,,,:S##S?##*,,,,::::,::+**?+++++**?***???????*+**?%%????******?
;;;;;:::;;;::,,,,+?*;,,,,,,,,,,,,,,,,,,,,*S%?+%#%;:::;;;;;;;+*****++;;+???******++**?%SS%???????????
;;;;;;**+;::::,,,,;:,,,,,,,,,,,,,,,:;;;;;+?+;+*?++*****+**+++**??*+++****++;;;;;+*??%##S%???????????
;;;;;;+;:::::::::;;;++++++++++++***????????*;;*+;+*****+*??**?SS%*+*+;:::::::::++***%###%????%??????
++++;;;;;;;;:::::*??***+++;;;;;;;;;;;;;;;;;++;;;+;;;+++****?SS##*:+*;:::::::::+++*??%SSS%%?%%%%%????
+;;;;;;;;;::::::::::::::::::::::+++++;;;::::;;;**;;;++;++*S###S?+;**::::::::+***%SSSSS%?*???%%???%%?
;;;;;;::::::::::::::::::::::::,,:;***+++++*++++++;;;;;;:+S##S?;+?????*+;;;;+**???%SSSS%?+****??*???%
;;;;;;;:::::::::::::::::::::::::,,:+?*************+++;;*S#S%*;;*????%%??*++??????***?S#S%????????%%%
+;;;;;;:::::::::::::::::::::::::::,:+***????????????*+*%%S?***+++**++++***+***?*+++++*%SSS%%%%%SSSSS
++;;;;;:::::::::::::::::::::::::::::,::::;;+++***????*??*******+;+++++***++;;;;:::::::;+***?****????
;;;;;;;;;::::::::::::::::::::::,::::::;:::::::::;;;;+++*******+;+++*+*?***++;:::::::::::;+*??????*??
+;;;;;;;;;;;:::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;+++++;;;+++++*++;;;;:::::::::;;;+**???%?%?
++++;;;;;;;;:::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:::;;;;++++++*****?
++++;;;;;;::::::::::::::::::::::::::::::::::;;;;;;;::::;;::;::::;;;;;;;;;;;;;;;;;;;;;;;;+++++++++***
+++;;;;;;;;:::::::::::::::::::::::::::::::::;;;;;;;;::::::::::::::;;;;;;;;;;;;;;;;;;;;;;++++++++++**
+++;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;+++++++++**
+++;;;;;;;;::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;++++++++**
++++;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;+;;+++++++****
+++++;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:;;;;;;;;;;;;;++++++++**
++++++;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;+++++++*****
++++++;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;+++++++++****
*+++++;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:;;;;;;;;;;;+++++++****
+++++++;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;+++++++*****
***+++++++;+;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;+++++++*****