%??%%?????+?%%%???%%?++***?++?%SS*+;+??**?*??*++??*+:;*??*+;;;++++**++;;+*??%**?*+*%%?*****????%????
%%%%%??****????*?%%?*+*????*+?%S%+***?*++*?**+*??+++*+*??**+;+??+*?*;+**+;;*?***+*%?*++++*?%%???????
%?????*++++*?******++++;;+++;?%S?;+?*+++;++;;;++;;+;;+++**?++*+;;+++;+*?*+++++;+?%?++++++*????????%%
%??****++++++*+++++;+**+;+++*?%S*;;;;;++;;++;+;;;+;:;+**?%?*?%*++++++****?*++;+?%*+++++**????*??%%%S
?%?????***++*?****+**???**++*???*++++++++*%?***+***++**+***++***??+**+*****+;*?*++++++***??****?%???
*?%%%%%?%?++++++++;;;;;;;;;;;;;;;;;;;;;;;++;+++++*+++*%?;;;;;;;;++++++++++++??+++++++**+*****???S%??
?*%?*???*?+;;;;;;;;;::::::::::::::::::::::::::::;++++?S%;:::::::::::::::::+??++++++++++++++++++*%??*
?*?SSS%S%*+;;;;;;:::::::::::::::::::::::::::::::;*+++?S%:::::::::::::::::+?++++++++++++++;;;+++*****
??*%S?*%S*+;;;:;;:::::::::::::::::::::::::::::::;*+++?S?::::::::::::::::+*+++++++++++++;;;;;++******
+**?S%%S?**;;;:;:::::::::::::::::::::::::::::::::*+++%#?:::::::::::::::+*++++++++++++;;;;;;;+*??****
++??%SS?***;;::::::::::::::::::::::::::::+;::::::+*+*S%;::::::::::::::+*+++++++++++;;;;;;;;;*???????
++*??SS%S?+;;:::::::::::::::::::::::::::;S%;:::::;++*+;::::::::::::::++++++++++++;;;;;;;;;;;;*??????
+++*??SS*+;;;:::::::::::::::::::::::::::%##S%?;::::::,:::::::::::::;+++++++++++;;::;::;;;;;;;;*?????
++++?*?S%+;;:::::::::::;::::::::::::::,;S#####*:::,,:::::::::::::::++++++++++;;:::::::;;;;;;;;+?????
+++;**+%S?;:::::::::::;;;;;;;;;:::::::;**??%SS;,:,,,;*;:::::::,:::;++++++++;::::::::::::;;;;;;+*????
+;;;+?*+%%?;::::::::::::;;;+**%???%*++?%**??%?;;:,,:?%*::::::::::;;++++++;::::::::::::::;;;;;;;+*???
+;;;;*?+*%S?;:::::::;++****???%SSSSSSSS%SS%%%?%?*::;*??+::;;:::::::;+++;:::::::::::::::;;;;;;;;;+???
+;;;;+**+*%S?::::::;+++++++++++++++++?S###SSS%%%%*:++***;;;;;;;::::::;++++++;;;;;;::::;;;;;;;;;;*??*
++;;;;+*++*%S*::;;+++++++++++++++;;+;;+%##SSS%%%%?:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;*?**
+;;;;;;**++*%?++++*******************++*%SSS%%%%%?+;++++++++++;++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;+*?**
+;;;;;;;*+++*++++++**************??**+++*%SSSS%%%%?++++++++++++++++++++++++++++++++++++++;;;;;;+*?**
;;;;;;;:;**++++++++++++++;;;;;:::::+%SS?+?%%SS%%%%%*++++*+++++++++++++++++++++++++++++++++;;;;;;*?**
;;;;;;;;:+??**?%%+;+++++++++++;::,:;+**++?%%%%SS%?%%*++**++++++++:::::;::::;++++++++++++;;;;;;;;+***
;;;;;;;;;:*SSS%?%?;::;+++++++++++;::;*?***%SS%?%%SS%?*+;:;++++++::,:++;+;+++++++++;;;:::;;+++;;;;***
;;;;+;;;;:;?%%*+?S?:,,,:;;++++++++++;;****?%SS%%%%%%%???+++++++;:::;++++++++++++;:::::::;*??*+;;+***
+***+;;;;;:+??+++?S*:,,,,,::;++++++++++***%SSSSSSSSSS%%#S*++++++?*++++****+****++++**+***?**%?+++***
+**+;;;:;;;;*?++++?S?:,,,,,,,::;++++++++**?##########%??*++++++?S*+++*??%??%%%S%S??S%%??%?*%S%??****
;;+;;;;;;;::+?*++++?S?:,,,,,,,,,:+++++++++*S#########%+++++++++*+;;;++?????+;++??*?***+*%++*?%%???**
;;;;;;;;;;::;*?*++++*%*:,,,:,,,,,;++++++++*S#########?++++++++++++;;;+++***+;;;*+*++*+;*%*+;+++*?%?*
;;;;;;;;;::::+??*++++*%*:,,,,,,,,,::*S%%SSS#########S**%%?????*;+*****+++++++;;;;+*???????*+*???****
;;;;;;;;:::::;????++++*%*,,,,,,,,,,,?#####SS######SSSSSSSSSSS#%;;***??*++***+;;;;+++**?%????*??****?
+++;;;;;;++;;;*????*+++++:,,,,,,,,,,*#####SSSS####SSSSSSSSSSSSS;**;;?S%?**?*++++++++?%?????++++++++*
??***++++++++++?????++;;++::::::::::?###SSSSSSSSSS%SS%%%SSSSSSS;*????%%%??*+++;+++++++**????++++****
%%%%%%%%%??%%?*?????%?**??******+***%#SSSSSS%%%SS%?%%??%SSSSSS%:*???*+???**++;;;;++**?????????*?????
???????*?**???****+*?**?%%%%?***++++?S%%%%%S?++%%?+?%%??%%S%?S%:?*++++**++++*****????***%???????????
+++++;*????????????????%%%%%SSSSS%%%??%%????*+;**+;+********+**+*%SS%?*++++++*????*+++++*???????????
+++++;++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;+;;;;;;;;+;++;+*%S#S*+++++++++++++++++++++??????????
++++;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;+?S#S?++++++??++*?***+*+******?????????
++++;;;;;;;;;;;;;;;;;;;;;:::::::;++*+++++++++;;;+*++;;;;;;;:+%#S?+++++++?%%++*????**?%SSSS%%******??
+;;;;;;;;;;;;;;;;;;;;;::::::::::::;***********+++++;;;;;;;:*SS%+;+++++*?%%%**++*?%%%SSSSSSS%%******?
+++++;;;;;;;;;;;;;;;::::::::::::::::+??***?*?**??****+++;+*S#S*+++++++*??????***?%%%SSSS%%%%S%??????
+++++++;;;;;;;;;;;;::::::::::::::::::;+++****??????????*+*?%%*++++++******+********????+*?SS%SSSS%%%
+++++;;;;;;;;;;;;:::::::::::::::::::::::::::;;;+++***???**???+++++*??*****??**++++**+++++**?????????
+++++;;;;;;;;;:::::::::::::::::::::::;;;;;;;;::::::::;;+++++*++**??????***??++++++++;;;;;;+***???*??
++++++;;;;;;;;::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;+;;++++;;;;;;;++++++++
++++++;;;;;;;;;:::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++
+++++;;;;;;;;;;;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++
+++++++;;;;;;;;;;::::::::::::::::::::::;;;;;;;;;;;;;;;;::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++
++++++;;;;;;;;;;;;::::::::::::::::::::::::::::;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;++++++++**
+++++++;;;;;;;;;;;::::::::::::::::::::::::;;;;;;;;;;;;:::::::::::::::::::;;;;;;;;;;;;;;;++++++*++***
+++++++;;;;;;;;;;::;:::::::::::::::::::::::;;;:;;;;::::::::::::::::::;::;;;;;;;;;;;;;;+++++++++*****
*+++++++;;;;;;;;;;::;::::::::::::::::::::::::::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;++++++++++****
*++++++++;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::;:::;;;;;;;;;;++++++++++++****
**+++++++;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::;;;:;;;;;;;;;;;+++++++++*****
**++++++++;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;++++++++******