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