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