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