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