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