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