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