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