??%%?*?%%?**???**??*;;++;+%%?***?%?+;;+**+;*?%S?+;+??**?*??*++??*+:;*??*+;;++++*??*++++*??%%????*%S?
?%S%%?*?*+***?%**??*::;++*****+???*+*????*+*%%%*+**??*+*??*+*??*++*+*?%?**;+??*???++****+*%???*?%%?*
??%???**++****?***++::::;++++++**+;;++++*+;+%%%++??+++;;++;;+++;++;+++**?++**+;+**+++*?*******?%?***
??????*******++**++;:::;;;++;;;++;++++;;+++*%%%;;;;;++;;++;;+;;;;;:;+**%%*?%?++++++**????****%%?****
??%%??**???***+*++++;++*;;+**++*;;**??***+*????+++;+++++%%**+++**+++**********??*****?????**%?*****?
****++++***+++++*???????+;++;;+;;;+++++;;;;+;;;;;++++++++++++++***++??+;;;;;;;+***********?%?*****??
++++++++;;;;;;++??+*****+;:::::::::::::::::::::::::::::::::::::++++*S#+:::::::::;;;;;;;;+?%******???
++++++;;;;;;;;;+*??%SS?++::::::::::::::::::::::::::::::::::::::**++*SS+::::::::::::;;;;;??******????
++++++;;;;;;;;:;**%%+*S*+::::::::::::::::::::::::::::::::::::::**++*SS;:::::::::::::::;**+*****????*
+++++;;;;;;;;:::+*??*%S+*;:::::::::::::::::::::::::::::::::::::+*++*SS;::::::::::::::;**+++***???**+
+++++;;;;;;;::::;**%S%+++;::::::::::::::+::::::::::::::::::::::;*++%#?::::::::::::::;*++++*******+++
++++;;;;;;;::::::++?%%%?+;:::::::::::::;S+::::::::::::::::::::::++**+::::::::::::::;*++++**+**++++++
++++;;;;;;;::::::;+*?S?*+::::::::::::::%#S%*+::::::::::::::::::::::,::::::::::::::;+++++++++++++++++
++++;;;;;;;:::::::+++%?+::::::::::::::+S####S+::::::::::::::::::,,,::::::::::::::;++++++++++;++;++++
+++;;;;;;;::::::::;*+;+;::::::::::::::**%%SSS;:::::::::::::::::,,,:*+:::::::::::;++++++++;;;;;;;++++
+;;;;;;;;::::::::::+*+++++++**++**;;+??***?%*::::::::::::::::::,,,+%?;::::::::::;++++++;;;;;;;;;++++
+;;;;;;;::::::::::::*++*%??*?%%%S#SSSS%%%%%%???*+;;::::::;+;;:::,:+??*;:;;:::::::;;+++;;;;;;;;;+;+++
+;;;;;;;::::::::::::+*++*%%+:;;+***?S##SSSSS%%%?+;;;;;;;++++:::::;+***+;;;;;;;:::::;++++++++++++++++
+;;;;;;;:::::::::::::*+++*%?::::;;;;;?###SSS%%%%+:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++
++;;;;;;:::::::::::::+++++?%+;;++****+?SSSSS%%%%?+++++++++++++++++++++++++;++;;;;;;+++++++++++++++++
+;;;;;;;::::::::::::::;++++*+++++******%%SS%%%%%%*+++++++++++++++++++++++++++++++++++***************
+;;;;;;::::::::::::::::+*+++++++++++++++?SS%%%%????%S%++++;++++++++++++*++++++++++++++**************
;;;;;;;:::::::::::::,,,:**++*?%*;+++++++?%SSSS%%%%%?**+++::;++++++++++**+++++++;::::::::;;++********
;;;;;;;;:::::::::,,,,,,,;%%%%%%S+::;++++*%SSSSSSS%%%*****+;+****++++*+:;++++++;:,,,,::;;++++++*****+
;;;;;;;:;::::::,,:::::,,,+%%%*+%%+,,::;;*SSSSSSSSS%%%?**??*******+++%%+;++++++;:::::;+++++++++++;+++
;;;;;::::::::::;;;;;::,,,:*%?++*%%;,:,,,*##SSSSSSSS%******+++*****+?%S?*++++++*?*?**?**?*??*?*****?*
;;;;;::::::::::;++;:,,,,,,;?*+++*%S;,:,,+##########%++*****+++*****??????**+++%S%*+*?SSS?SS%SSS%?SSS
;;;;;;;::::::::::::::,,,,,:*?*++++%S;,,,;##########S++++**+++++******?????*+++?%*++++++***++**S??***
+++++;;;::::::::::::,,,:,:,;?*+++++%%:,,+##########?+++++++++**++++++*++*++;;;;+**??*+*??***+*%*?***
+++++;;;:::::::::::::,::,:,:*?**++++??;,+##########????%%?????+++++++;;++++;;;;++;+***???**???%??%%%
+;++;;;::::::::::::::,,,:,,:+*??*++++?%:?#S######S*S#SS#SSSSS%+++**?*+++**+;;;++;;;+*??*??*+**+++**?
;;;;;;:::::::::::::,,:::::::;*???*++++*;%SS#####S;:SSSSSSSSSSS*+*??%%?**?*+++*++++++**????*;++++++*?
;;;;;;::::::::;+++;;:;;;;;;;;+????*+;;;+?###S%##*::%SSSSSSSS#S???%*%#S?*??*???*+++*+????????*******?
;;;;++++++++++???****??***?*++*?????***??SSS?*SS?+*SSSSSSSSSSSSSSS?*S#%??????***++*??%%%????????????
??????%?????%S%?**********?%****++??**??%%?+++?%*;+%SSSSSSSSSSSSSSS**SS*****+;++*?%?????????????????
*++++++;;;;;++;;;;:;;;++***?????????%?%SSS*;+%?;;*?????%%?%%%%SSS%?*+**;;++***?%%%?***+*%?????*?????
+++;;;;;;;;;;;;::::::;;;++++;;;;;;;;;;;;;;;;;++;;;++++++**+*%SSSS+;;*?*;;+*?%%%%*+++++;;??????*?????
;++;;;;;;;;;;::;;::::::::::::;;;;;;;;;;;;:;;;;;+;;;;;;;;;;*SSS#S*;;+%S?**?%%??***?%%S%??*****???????
++;;;;;;;;;;::::::::::::::::;;;+++++++;;;;;;;;**+;;;;;;;;?S###?++*???*+*++*????%S#####SS?******?????
+;;;;;;;;;;:::::::::::::::;:;;::;**********+++++;;;;;;;;%S#S%+;;+?%?+++***++%SSS####SSSSS%?????????%
++;;;;;;;;;::::::::::::::::::::::;*??****?**??******+++%SS%?*++*+*+++++???**??%%S%%?*?S###SS%%%%%%SS
++;;;;;;;;;::::::::::::::::::::::::++****???????????*+*????****++++++**%?******?*******?%???????????
++++;;;;;;;;::::::::::::::::::::::::::::;;;;;+++***??***+*****++;+++++*?++++++++****+*********?**???
+++++;;;;;;;:::::::::::::::::::::;;;;;;;;;;;;;;;+;++++++++++++;;;+++++;;;;;;;;;++++++++++++*******?%
+++++;;;;;;:::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+;;;++;;;;;;+++++++****?
+++;+;;;;;;:::::::::::::::::::::::::::::::;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++**
+++++;;;;;;;;:::::::::::::::::::::::::::::;;;;;;;;;;:::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++*
++++;;;;;;;;;;;::::::::::::::::::::::::::::::;;::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++
++++;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;+++++++***
+++++;+;;;;;;;;;;:::::::::::::::::::::::::::::::;;::::::::::::::::::::::::::;;;;;;;;;;;;;+++++**+***
+++++++;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;+++++++++***
++++++++;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;+++++++++****
*++++++++;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;+++++++++****
**++++++;;+;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;++++++++*+***
**+++++++++;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;++++++******