***********+++++++++++++++++++**++*++++*#++++++++++++++++++*++*+++++*++**+*++++
**+++++++++++++++*++++++++++*++++++++++**#++:+++++++++++++++++++*++++++++++++++
**+++++++++++++++++++++++++++++*+*++++++=#++++++++++++++++++++**+++++++++++++++
+++++:++++++++++++++++++++++++++++++++++#=+++++++++++++++++++:++++:++*+++++++++
++++++++++++++++++++++++++++++++++++++==++++++++:++:+++++++++++++++++++++::++++
+++++++++++++++++++++++**+++++++++++++#=++++++++:::::++:::+++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++*=*++++*+++:+++:++++++++++++:+:++++++++:++
+++++++++++++++++++++++++++++++++++*=++++++++++++::::+:+++++++++++++++:++++++++
:++++++++++++++++++++++++++++*++++==+++++++++++++++:+++++::++:+*+++++++++++++++
:++++++++++++++++++++++++++++++*#*+++++++++++++++++++++++:+++++++++++++++++++++
:::++++:+++++++++++++++++++++*=++++++++++++++++++++++++++++++:+++++++++++++++++
::::++::::+++++++++++++**++==+++++++++++++++++++++++++::::+:+:::++++++:++++++++
++::::+++:++++++++++++=****==+++++::+++++++++++:+++::::::::::+:+++::::::+++++++
++::::++++++++++++++***+***=++++::+*+:+++:+++++:+:++++++::::::::::+:+++++++++++
::+:+++++++**+++++++*==*+==++::::::+:::++++:+::+::::++::+::++:++++++:++++++++++
:++++::++++++++++++*==##@=:::::::::::+++++::::+++:::::::++::+++::::+:+++++++*++
:::++:+++++++++++++==@@@@=::++++:::::::::+:::::++::::::::::+++:+++:++++++++++++
++++++++++++++++++*#*@@###+:++:::::::::::::::+::+:::++:+:::::+:++++++++++++++++
::+++++++++++++++++=##@###*++::::::::::::::::+:::+++::::::++:+::+:+++++++++++++
::::+++:++++++++++*=##@@#=*:*:::::::::::::::::::::::::::::++:++::+:+:++++++++++
:+++++:++++:+++++:+*=##@@@@*::::::::::::::::::::::::::::::+:::::+::::+::+::++++
++:::::::::++:::+++++*#@@@@+:::::::::::::::::::::::::::+:+::::+:+++::++::::++::
++++++++::::::::::++::*===#+:::::::::::::::::::::::::::++::::::++++::::::::::::
++++++++:::::::::++:+::+**+*#::::+::::::::::::::::::::++:+++:::++:::::+++:::+:+
+++++++:::++:::+:::::::+++::#+::::+::::::::::::::::::::++:++:+::::::::+::::::++
+++++++:::+::+++++++::::+:+=*:::::::::::::::::+:::::::::++:::::+::::::++:+::+++
++++++++::+++++++++++++++++*#+:::::::::::::::::::::::::::::::*:::::++::+++++++:
+++++++++:::+:++:+++++++++++#::::::++:::::::::+++:::::::::::::::::+++++::+::++:
++++++++:::+++++::::+:++++++#:::+:::::::::::::::+:::::::::::::++++::++:+::+++++
:::::::::::::::::::+::++:+++**::::::::::::::::::::::::::::::+++++:::++++::+++++
::+++::::::::++:+:::+::+:::+==:::::::::++:+::::::+++:++++:++++++++::+++:+:+++++
:::::+::+:++::++::++::+::::==*+:::::::::+:+:::+:+:++::++++:+++++++++++:++++++++
::::::+++::::::+::+:+++++::##::::::++++:::::++++::++:++:+++++++++++++++++++++++
++:+++++++:::::+++++++*+++++=+:::::++:+::+:+:::+:+:+++++::++++++++++++++:++++++
+:++::+++++*++*++**+++++++++=@*::::+:::::+::+:+::+::+++:++++++::+++++++++++++++
++++*+++*+*+++++:++:+:::+++:*@*+::::::+::::::++:::::::+:+++++::::++++++++++++++
*==**+++:::::+::+:::+:++++::+*=:::::::::::+++::+:+:::::++:+::::::+:++++++++++++
+==++::+::::::::::::::+::::++++=**::::::::+:::+:+:::::::::::::+::++++++++++++++
+++++:::+::::::::::::::+:+::++++*==@:::::::::::::+:+++::::::++++++:+++++++++++: