################# / \ / > ############# + ###################### / ####### / > ####### ######## \ / + ########
#::::::::::::::::# \ / > > ###::::::::::::# + # #::::::::::::::::::::# . #:::::# _ + | #:::::# < #:::::::# \ , #::::::#
#::::::######:::::# , > ##:::::::::::::::# / #::::::::::::::::::::# | #:::::# . #:::::# - #::::::::# < \ #::::::#
##:::::# / #:::::# | = #:::::########::::# \ ##::::::#########::::# . #::::::# / _ #::::::# + #:::::::::# + #::::::#
#::::# > #:::::# _ #:::::# | , ###### _ * #:::::# < | ###### _ / ###:::::# #:::::### * #::::::::::# #::::::#
#::::# \ #:::::# #:::::# _ / , # + - * #:::::# - - / . + . < - #:::::# #:::::# \ \ #:::::::::::# \ #::::::#
#::::######:::::# * / #:::::# / * * = , - = . . #::::::########## / + < , #:::::#:::::# # > #:::::::#::::# #::::::#
#:::::::::::::## = #:::::# ########## \ #:::::::::::::::# _ , #:::::::::# _ + + . #::::::# #::::# #::::::#
#::::######:::::# \ + #:::::# + #::::::::# \ * #:::::::::::::::# \ _ = / #:::::::::# , _ \ #::::::# #::::#:::::::#
#::::# > | #:::::# > / #:::::# / #####::::# \ \ #::::::########## , . _ < / #:::::#:::::# , | / #::::::# , #:::::::::::#
#::::# | - #:::::# < #:::::# + , | #::::# _ = #:::::# , , > < + _ #:::::# #:::::# . #::::::# #::::::::::#
#::::# , #:::::# / > #:::::# < | #::::# | #:::::# / / / / ###:::::# #:::::### \ #::::::# \ / #:::::::::#
##:::::######::::::# + #:::::########::::# ##:::::::## \ \ * # _ #::::::# \ #::::::# . #::::::# . , #::::::::#
#:::::::::::::::::# , + ##:::::::::::::::# \ | #::::::::## \ = > # = + #:::::# . | #:::::# > #::::::# \ . / #:::::::#
#::::::::::::::::# = + , \ ###::::::###:::# # | #::::::::## # | - , \ , #:::::# + | #:::::# | #::::::# \ \ #::::::#
################# - > > + ###### #### + ########### * . # + < / ####### \ * ####### - ######## + # #######