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