####%%%%%%%%%#%#%%%%%#%%%%%%%%%#%##%+%%%%%#%%%#%%++%%%%%%%+%#%+%+++++:++%%+++++::+::::::%%+%#+%%+:+:,..,,,,+#%%::,:%::,,,:,,:::,::::::+++:+++:+:++:+++
####%%%#%%##%###%%%%#%%%%###%%#%%#@#+%%%%%%%%%##%%%%%%%+%%%%%+%%+++:::++%++::+++++:+,,,:%%+%#%+%:,,,,,,....:##%,,,:%+:,,,+,,:::::::::+++++++++++++++++
#%%%%##%%%##%%###%###%%%#%####%#%#@#%%%%%###%%#%%%%#%%%%%%%%%++%%+%+:++:::,,,+:+%+:+,,,,:%++#%+%:,,.......,:##%:,,:%+:,,,+:::::+++++++++++++++++++++++
#%%%%%#%%%%%##%##%###%%##%%#%%%#%%@#%+++%%%%%+#%:+%#%++#%%#%%++%%%##%%++++:::+:::+::,,,,,%%%#%++:::,,::::::%##%::::++:,,,+:,:+++++++++++++++++::++++++
##%%%%%####%#####%%##%%%#%++%%##+%@#%:++##%%%+##++%%+%+%%%###%+%%++%+:::::+++:+:::::,,:,,+%%#%+%::::::::+++%#%%+::+++:,,,+++++++++++++++++++:+::+++++%
#%++:++%#######%#++%#+%%%%++%%##+%@#%:+%##++%%##+::++%+++%###%%%%%%++++:+:++:++::::+:::::+%%#%++:::++++++++%++:++++%+:,,,++::+++++++++++++++++++::+++%
%+:::++++%##%%%++%+%#%#%%%%+++%#%%@#%+%%%%+%%%%#+,:++%+++%%#%#%%%%%%%%%+%+:+++++:++::++::+%%#%%%++++++++++:::::+%%%%+:,,,++::+++++++++++++++:::::::+++
#%::++++%%##%%%+++%###%%%%%%%%##%%@####%++++%%%#%++%+%::+%%%%%+%++%%#%%%%++++%++:++::++::+%%%%%%+:::::::::+++::::::++:,,,++:,%%%%++++++++++::::+::++++
%%++######+%#%#%%#%%###%########%######%++++++%#%%+++%++%%##%%%%++%%#%%+++++++%+++:::++::+%%%%+%+::::,,,,,:+++::+++%+:,,,+%:,%%%%+++++++++::+:::::::++
####%%+%###++%###%%+%#%%%%%%%%##%%#@#####%%%%%%#%%++%%+%%%######%%%%%%%%+%++++++++:+++::+%%#%++%%+:+++::::::+%%%%%%%+:,,,+%+,+%%++:++++++::+:::+:::+++
##%%%:+%##%++%%%++++##%##%%%++%#%%##%%%##%%##%###%%%%%%%%%%####%%%%%%%%++%++++%++::++:::++%%+++++++++%%+++++++%%%%%%+:,,,+%+,+%%+++++++++:::+:::::+:++
###%++%+%##++%%+%+:+%#%%%+%++%##%###%%%#####%%%%%++%%%%%%%%%@#%%%%%%%%%++++++++++:+++:++::++++++++%+++%%%%%%+%%%%%%%+:,,,+++,+%+++++:+++++::+:::++:+++
#%#%++%####+++%%#%+#%#%%%#%%%%#######%%%%###%%%%##++%%%%%%%###%%%%%%%+++%+++++:%%+++++++:+++:+++++%+%%+%%%%%%%%%%++%++,,,+%+::+++++++:::++::::::::++++
##%%%%####%#%%###%%%%##%%%%#%%##%%###%%%%%#%%%%%%#%%%#%%%%%%##%%%%%%%%++++++++++++++%+++++++++++++++++++%%+%+%%%%%%%+::,,+%%::+++++++:::+::::++::+++++
###%#%##########%%%%%##%%%%##%#%%%###%%%%%%%%%%#%#%%%%%%#%###%%%%%#%%%+++%%++++%++++:+++++++++++:+++++++:+++++++%+%%+:,,,+%%::+++++++:,:+::++++::+++++
###%%%%%%%%%##%##%%%%#@%%%%%%%##%####%%%%%%%%%######%%%%%%%#%%%%%%%%%%%++++++++++%++:::+::+++++++++::+:::++++%+++++%+:,,,+%%::++++++::,::+:+::::++++++
##%%%%%%%%%%##%%###%%%#%%%#%%%%%%%###%%%%%%#######%%%%+++++##%+%%%%%%%%+++++++++%@%++:++:::::::++++++%+++++++++++++%+:,,,+%+:::++::::::::+++:::++++%+:
###%%%%%%%%%#######%%%#%%%%%%%%%%%###%%%%%%%%%%%###%+++++++%%%+%##%##%%#+++++%%+#@#%++::::::++++++%%####%%%%+++++++%+:,,,+++::::::::::::+:::::::++++%+
#%#%%%%%%%%%#####%%%%%##%%###%%%%%#@##%%%%%%%%%%%%#%++%+++++++++#%##%%%%%%++%+++####+::::::+++++++%%%%%%%+%%+++++++++:,,,:++::::::::::::+:::::::++%+++
#%#%#####%%%%%####%%%%##%##%%%%%%%#@#%%%%%%%%%%++%%++++++++++++:+%#+%+%+++++%+++%%%%%+++:++%%%+++++++%%%+++%%%%++:+++:::,:+::::::::::::::::::::+++%+%%
#%%%####%##%%%%%%%%%%+##%###%%%%%%%@#%%++%++%%++++++++++++++++++:+#%%++++:,+++++++::+%+::+%%%++++++++++%%%+%%%%%+++%%###%:::::::::::::::+:::::+++%+%+%
#%#%####%%%%%%%%%%%%%%##%%%%%%#%%%%@#%%%+++%%%++++++++::+++++++:+++++++++:,::::+::,,++:::+#%#%++++++%%%%%%%#@###%%#@@@@@@+::::::::::::+++::::++++++++%
#%%%%%%%#%%%%##%########%%%#%%%%%%%##%%++++%%%++++++++++++++++++++++::+::::::%%+::+::::::%%##%%%%%++%%%%%%#@@@@@@@@@@@@@@%:::+::::::++::::::+++%+%%%++
##%%%%###%##%%######%%##%%%#%%%%%%%@##%%%%%%%%+++++++++++++++++++++++++:::+::%+:,:,,:,,:+%#@#%%%%%+%%%%++%@@@@@@@@@@@@@@@#+:+++:::::::::::::++++++++++
##%%%############%%%%%##%%%#%%%%%%%###%%%%###%+++++++++++++++++++++++++::::::+:::::::::::+%###%%%++++%%%%%@@@@@@@@@@@@MMM@%:+++:::::::+::::++::+++%%++
##%%%##%%#####%%%%%%%%###+%%%%%#######%%%%###%+++++++++++++++++++++++++::::::,:::::::,,,:+###@@%%%+%%%%%%#@@M@@@@@@@M@@@@@#+:++:::::::::+::+++:++++%++
%%%%%%%%%%%%%%%%%%%%%%###++%%%%+%%%#####%%#%%++++++++++++++++++++++:::++:+:%%::::::,,,,,:+%#@@@#%%%%%%%%#@@@@@@@@@@@@@@@@@@%+++:::::::::::+++%%+++%+++
##%%%%%%%%%%%%%%%####%###+%%%++%+%#####%%+%%+++++++++++++++++++++++:::+::::+##+++++:,.,,+%%#@@@#%%%%%%%%@@@@@@@@@@@@@@@@@@@#++:::::+::::+++++++:+++%%%
#%%%%#%%%%%%%%%%%%%%%%%##%%%%%%##%+###%%+%+%%++++++++++++++++++++:::::::::::#%%%%%+:,.,:%%%#@##%%%%%%%##@M@@@@@@@@#@@@@@@@#+::::::+++::+++++++++++++++
###%%#######%%%%%%%%%%%##%%%%%%###%#@#%+%#%%#%#%+++:::+++++++++++:::::::::,+%%%#%+,,,.,:+%%##@##%%%%%%#@MMMM@##@@@#@@@@##++++::::::++:+++++%%:++++++++
###%%#%##%##%%%%%%%%%%%##%+%%%%#%#%#@#%%%%#%%#%%+++:::+++++++++:+::::::::,::###%+:,,,,,:++%#####%#####@MMMM@@@#@##@@@%+++++::::+:::++++++++:+:++++++::
###%%#%###%%%%%%%%%%%%%##%+%%%%+###@@##%%%%%+%++%+,,,:+++++++:::+:::::::::::+#@#%:::::,:%%%%%########@MMM@@@@@@@####@%+:++:+::::++++++:++++::+++:+:+:+
###%+%#%%%%%%%%%%%%%%%%##%+%###%#+#@@@#%%%+%+++%%%+::+++++++::::::::::::,,,,:+##%+++::,,+##########@@@MMMM@@@@@######%+::+++:::::::+++:++++::+++:+:+++
###%+%#%%#%%%##%%%%%%%###%++%####+#%#@%++++++++%%+%++++++:+:+++::::::::::::::++#%%++++::+#@@######@@@MM@@@@@@@#####@#%+:::+:::::::++++++::::::++++:+++
@##%+%%%###%%#%++++%%%###%++%%####@##@%%%+++++++++::++++++++++++::::::::::::+++%#@####%%%#@@###@@@M@MM@@@@@@@@########+::::::::::::++::::+::::++::++++
###%%%%%#%%%%%%+++%%%%####%%+%#%##@##@#%++++++++++++%%++++++++++::::+++++++:+:+%##MM@@@@@@@###@@@M@MMM@@@@@#######@##%+:++:::::::::++::::++:+++:+::+++
####%%####%%%%++%%##%%%%%%%%++%%%%#%#@@%+++%+++%%##+%#++++++++++++++++:+++::::+%##@@@@@@@@@@@@MMMMMMMM@@@@@@@#####@@#%++++::::+++:++:::::+::+:::+:++++
####%%%%%%#+%%%%%%%%#%%%%%#%%+%%%##%##@#%++%%++%#%#+%:%+++++++++++++++:+:::++++%#@@@@@@@@@@@@@MMMMMMM@@@@@@@@@#####@#%+++++::+:+++++::+:++::++:++:++++
###%%%%%%##%#%%%%%%%%%+%++%%%+%%%%###@@@#%+++++%+%:%#+%%+++++++++:::+++++++++++###@@@@@@##@@@@@@@@@@@@@@@@@@@@@@#@@@#%++++:::::+++++::++++::+++:+:++++
##%#%+%%%%%%%%+%%%+++%++++%+++%%%%#@@@@@@#%%++++%%+%#%##+++::::,,,,,::::+:++:+%##@@#@####@@@@@@@@@@@@@@@@@@@@@@##@##%%::::+::::++:+++:+++++::++++:++++
%:%%+%+%%+%+%+:%+++:+%+++%%++++#######@@@@@##%%+#%%##+%#+,,,,,,:::::::::::::++%#@@@@@@@@@@@#@#@@@@@@@@@@@@@@@####@##%%:++:+:++:++:+:::++++::+++++++++:
+:%+++:%++++++:+++::+++:+++::::%%###@#@@@@@@@#%##%%#%:%#%:::::::::::::,:::++%%##@@@@@@@@@@@@#@@M@@@@@@@@@@@@@@###@##%%+++::++::+::::::+++::::+++:+++++
:++::+::::++::::,:::::::::::::::%#@#@@@@@@@@@@%#####%+###++:+++::,::::+++%%%%##@@@@@@@@@@@@#@MM@@@@@@@@@@@@@#@##@@##%+++:::+:::+::::::+:+:::::++:+++++
::::::,,:,::,,::,,,,,,,,,::,,,:,,%@@@@@@@@@@@#+######%#####%%%%%%+++++%%%%%%##@@@@@@@@@@@@@MMMM@@@@@@@@@@@@@@@#@@@@@#++++:::::::::::::+:+::::+++:+++++
,,,,,,,,,,:,:,,,,,::::,,,,,,,,,:,+##@@@@MM@@@@%##++##%###@######%%%%%%%%######@##@@@@##@@@MMMMMMMMMMMM@@@@@@@@##@@@##%++:::::::::::::::++:::::+:::++++
,,,,,,,,,::,,:,,,,::::,,::,,,,:,,+%#@@@MMM@@@@##++:+%####@@@############@@@@###%##@@@@@@@@MMMMMMMMMMM@@@@@@@@@@@@@@##%++::::::::::::::::::::::+:+:++++
,,,,,,,,::,,,,,,,,:,,,,,::,,,,,,,:%#@@@@@@@@@@##++:::+####@@@@@@@######@@@@###%%##@@@@@@@@M@@@MMMMMMM@@@@@@@@#@@@@@##%::::::::::::::::::::::::+::::+++
,,,,,,,,,,,,,,,,,,,,,:,,,:,,:,,,,:+#@@@@@@@@@@##++++++%####@@@@@@@#####@@#%%%%%####@@@@@@@@@@@@@@@@MMM@@#@@@@@@@@@@##%::::::::::::::::::::::::::::++++
,,,:,,,,,,,,,,,,,:,,,,,,,,,::,,,,::+@@@@@@@@@@#@%+++++%##@@%%##@@@@#######%%%%###%###@###@@@##@@@@@MMMM@@@@@@@@@@@@#@%:::::::::::::::::::::::::::::+:+
,,,,,,,,,,,,,,,,,::,,,,:,,,,,,,,:::+%#@@@@@@@@@@##%+++%###@%%%%##@@@#####%%%%%###%####%#@@@@#@@@@@@@MMMMM@@M@@@@@@@@@%:::::::::++:::::::::::::::::+++:
,,,,,,,,,,,,:,,,,,,:,,,:,,,,,,,,,,,:%#@@@@@@@@@@@##%++%@#####%%%%########%%%%##%%%#####@@@@##@@@@@@MMMMMMMMMMM@@@@@@@+::::::::::+:::::::::::::::::::++
,,,,,::,,,,,:::,,,,,,,,,,,,,,,,,,,,,+##@@@@@@@@@@###%%%@#@#%#%%%%%#######%%%%#%%%###%#####@@@@@@@@@@@MMMMMMMMMM@@@@M@+:+::::::::+:::::+:::::::::::::::
:::,,:,,,,,,:,:::,,,,,,,,::,:::,,,,,:%#@@@@@@@@@@@#%%%##@@###%%%%%###@@#%%#%%%%%#####@@###@@@@@@@@@@M@MMMMMMMMMM@@@@@+:++:::::::++++:++:::::::::::::::
:::,:::,,::,::::::,,,,,,::::::,,,::::+%#@@@@@@@@@@@#%%####@@##%%%####@@@#####%%######@@@@@@@@@@@@M@@@@MMMMMMMMMM@@@@@+:++::::,:++++++++++:::,:::::::::
::::::::,::,:::::::::,,,::::::::,::,::+%@@@@@@@@@@@@##@@###############@@@#@#####@@@@@@#@@@@@#@@@@@@@@@@@MMMMMMMMMM@@+++:+::::+++%+++%%%%+::::::::::::
::::::::::,:,,:,,:,,:::::,,,,::::,::::+%##@@@@@@@@@###@######%#######@@@@@@@@@#@@@@@@@@@@@@@@@#@@@@@@@@@@@@MMMMMM@MM@%+:+++:::+++%+%%+%%++:::::::::,::
,:,::::,::,,:,,,,,,,,:,,,,,,,,,::::::::++##@@@@@@@@##%###@######@####@@@@@@@@@@@@@@@@@@@@##@@@@@##@@@@@@@@@@M@MMMMMM@%+:::+::+++++++++%+:+,:::+++++++:
,,:::::::,,,:,,,,:,,,,,,,,:,,,,::::::::::%##@#@@@@@##%#####@@##@@@###@@@@@@@@@@@@@@@@@@@#####@@@@###@@@@@@@@MM@MMMMM@%,,,,,,,+++%+++::++++:::+++++%+%:
,::::+:::,::::::,:,,,,,,,,,,,,,,,,,,,:::,:+%##@@@@@##%#@@@###@@@@@@#@@@@@@@@@@@@@@@@@@@@@#@@##@@@##@@@@@@@@@@MMMMM@M@#:,,,,,,,,::+::+:::::+:++::::++%+
,,:::+::,::,,,,,,:,,,,,,,,,,,::,,,,:,,::::++%#@@@@@###@@@@###@@@@@@@#@@@@@@@@@@@@@@@@@@@@##@@#@@@@@#@@@@#@@@@MMMMMMM@#:,,,,,:,,,,::::::::::%++:+::::++
,::::::::,,::,,,,,,,,,,:,,,,,::,:::::::::::++%#@@@@###@@@@###@@@@@@@@@###@@@@@@@@@M@@@@@@@@@@@@@@@@@##@@@@@@@MMMMMM@@@+,,,,,:,:,,,::::::::+%++:++:::+:
,,:::,,,:,,:::,,,,:,,,,:,,::,:,,::,:::,:,:::::%##@@###@@@@###@@@@@@@######@@@@@@@@@@@@@@@@@@@@#@@@@@@##@@@@@@MMM@MM@@@+,,,,,:,,:,:::,::::::+::::::+::+
,,,::::,,:::,::,,,,,,:,::::,,,,,,.,,:,,,,,:,,:+%##@####@@@###@@@@@@@@#######@@@@@@@@@@@@@@@@@@@@##@@@@#@@#@@@M@@M@@@@@+,,:,,::,:,,,::::::::::,::::++:+
::,:::::,::,,,,,,,:,::::,..........,,:,,,::,,:++%########@@#@@#@@@@#########@@@@@#@@@@@@@@M@@@@@@@@@@@@@@@@@@@@@M@@@@@+,::,,,,,,,,:::::::::,,::,::::::
::,:::,,,::::,:,,::::,...........,,,,:::::::::::++%%%##@#@@@@@#@############@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@M@@@@#+,::,,,,:,,:,:,,::,,::,,,,::::::
::::::,,,,:::,:::::,............,,,::::::::::::::::+%###@@@@@@@#@##########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@@@@#::::,,,:,,,,,,,,,,,,,,,,:,::::::
:,::::,,,,,::,::,.............,,,,::,:::::::::::,,::+##@@@@@@@@@@#########@@@@@@@@@@@@@@@@MM@@@@@@@@@M@@@@@@###@@@@@@#::::,:,,,,,,,,,:,,,,,,,,,,::::::
:::,:,,,,,,,:,,................,,:,,,::::::::::,,,::+%##@@@@@@@@@#@######@@@@@@@@@@@@@@@MMMMMMM@@@M@MM@@@@@@@@#@@@@@##+::::,,::,,,,,,,,,,,,,,,,,,:,,,,
::::::::,,,,,..................,,,,:,:::::,,::,,,,,:++%#@@@@@@@@@####@@##@@@@@@@@@@@@@@@@@MM@@@MM@@@MMM@M@@@@@@@@@@@@%++:,::::,,,,,,,:::,,,,,,,:,:,,,,
:,:,:::::,,,..................,,,,,,,,::::,:::,,:,,:::%%##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MMM@@@MMMMMMMMMM@@@@@@@@@@##%++:::::,::,:,::::,,,,,,,,:,,:,,,
:::::::::,,,,,,,,,,,........,,,,,::::::::,,:++::::::::+%%#@@@@@@@@@@@@@@@@@@@@@@@@@@M@@@MMMMM@@MMMMMMMMMM@@@@@@@@@@###%+:::::::::::+:::,:::,,:,,,,,,,:
,::::+:::,,,:,,,::+:,,,,,,,,,,,,+%%%#%%%#:%+::+%%%%%##%%%##%%@@@@@%%%%@@#%%%%#M@@@%::%@M@%%#@%%##%%%%%%@@M#%%@@%%#@@%::+%:::::::+:+::::::::::::,,::,,:
::::+::::::::::::++:::::::,::,,,+.  #.  %#.....,@.  %+  ,@,  #@@@+    @@,    .+@@,    ,@#  ,#  ,+      #MM%  %@  %@,    ,%::::::::::::::::::::::,::::,
::+::::::::::::++++++:::::::::::+.  #.  %:  ,,. %,  %:  .@.  #@@@:    #@,  ,. .@%  :,  %#  ,#  ,+      #MM%  ,@  %%  ,,  ++:::::::::::::::::::::,::,:,
::::::::::::::::+:++++:::,::::::%.  #.  #:  +:  +:  %,  .#  .@%#@, .. +@,  %:  #+  ++  +#  ,#  ,@@:  +@M@@%  .#  %+  :+  :+::,:::+::::+:++::::::::::::
:++:+++:::::::,:::::+::::::::+::+.  %.  #:  +:  ++  +.  .#  .#%%@. ,. :@,  %, .@+  ++  +#  ,#  ,MM:  %@@@@%   +  %+  :+  :+:::++:::+::::::::::::+::,::
++:::+::::::+::+:+:+:::::+++:::+%.  ..  #:  +:  +%  :.  .+  ,#+%@. :, ,M,  ,..+M+  ++  +#  ,#  ,MM:  %@@@@%   .  %+  :+  :+:::+:::::::::::,::::+::::+:
:+:::::::::::+:::++:::::+:::::++%.   .  #:  +:  +%  :....:  ,++%#. +: .M,    .:@+  ++  +#  ,#  ,MM:  %M@@@+      %+  :+  :%::::::::::::++::::::+:::::+
:::+::::::::::::::::::::+:+++:++%.  +.  #:  +:  +#  ..., ,  ++%#%  %+ .@,  %,  %:  ++  +#  ,#  ,@@:  %M@@@+ .,   %+  :+  :%:::::::::::+:::::::+:+::+++
+:+:::+:::::::::++:::+::++::++::%.  #.  #:  +:  +#. . ,+ .  +###+  ,,  #,  %:  %+  ++  +#  ,#  ,@M:  %M@@@+ .+   %+  :+  :+::+:::::,:::::::::++:+::::+
,:::::::::+::,::::::::::++:++:::+.  #.  #:  +:  +#.   ,%    %#%#:   .  %,  %,  %+  ++  +#  ,#  ,@@:  %@@@@+ .#   %+  ++  ::::::,:::::::::+::::+:::::::
::+:::++:+:+:::::::,,.,:::,:,:,:%.  #.  %+  ,.  +%,   +%    #%%@,  ++  +,  ,.  %%  ,,  %@. .:  :@@:  %@@@@+ .@,  %%  ,, .++:::::::++::::::::::::++::::
:::+:++::::,::,::::,,,,:,:,,:::+%.  #.  %#,.  .:%%:   %%.  .@##@.  ##  :,     .@@,   .:@M+.   .#@@:  %@@@@+ .@+ .%@:    ,%+:+::::+:+:::::+::+++++:::::
::::::,,,,,,,,,::::::,,,,:::::::%#%%#%%%#+#%++%%::#%%%#%%%%####@###@@#########@@@@%++#@@@M#++%@@@@###@@@@@@##@@##@@@#++%%::::::::+:::::::::::::::+::::
,:,,,,,,,,,,,,,::::::,::::::::::++:::::::::::+:++++:::::::+%#####@@##@@@@@#@@@@@@@@@@@@M@@MM@@@@@@@@@@@@@@@@@@@@@@@@@@@%:::::+::::::::::::::+::::+::::
:,,,,,,,,,,,,,,,,:::::::::+++::+::::::::::,:::::+::::,:,:+%##########@#@@@@@@@@@@@@@@@@@@M@@@#@@@@@@@@@@@@@@@@@@@@@###@%:++::::+:::::::::::::::::::::+
,:,,,,,,,,,,,,,,,:::,:::+::++++:+::::,:,,,,:::++:+:::,,::%##@##########@@@@@@@@@@@@@@@MMM@@@@#@@@@########@##@@@@@@####%:::::::::::+:::::+::::::+:::::
::,,,,,,:,,,,,.,,:::::+:::++:::,:,+:::::::::::+:::,,,,,:+%#@###########@@@@@@@@@@@@@@@M@@@@@@@@@@#########@#@@@@@@@##@##:::::::::::::::+++::::::::::::
:,,,,,,,,,,,,.,,,,,::::+:::::::::,:::::,,,::::,,,,...,,+%################@@@@@@@#@@@@@@@##@@@@@#@#@@#######@@@@@@@@#####::::::::::::,:::++:::::::::++: