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