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