/.M@@MH@H@HHHHHXXXHH@@@                                        
                                                MMHM@@HH$X$$$XX$XXXXXHH@@@                                      
                                               @HXHX%$$$+%%$%%%$XXXXXXHHH@@M                                    
                                             /@XX%%%/+/+/+/++%%%%$$$$$XXXXHH@@                                  
                                        MH@@X$%/////;;;/;////+++++++++%$$XXHHH@M                                
                                     @@HHXX$$%//;/+/;:;;;;/;//////++++%$%%$XX$@X@M                              
                                 H@@@XX$%%%///;:;;::;:;;;;/;//;///+++++%%+%%$XXHHH@#MM                          
                                HHXX$+%%//////;/:;:;;:;/;:;;/+/++++++++%+%+%$$$X$XXHH@+                         
                            / @@X$++://+/:=:::::;///;=;/+////+//+++/++%%%%%%$$X$X%$%XHH@                        
                            @@H%%+/://;;::;/++///:=::;//;////++%+%%+%$$$%%XXX$$%$$XX$$$H                        
                          /@XX$+/;;;;;;:;/////:::::;;/+/+%%+/+++%%%%%$$%$$%$$$$$$X$$HXXX@                       
                       @@@HX$$$///////;///++;:::::;//+%++/+++++++%%+%$%$$%%$$$X$$$XXXHXXH@                      
                      M@@HXX$$%++++++++++//;::::;/+%%%%+///++%%%%%++%%%%%%%%$$$$$%$XXHHH@@@                     
                      M@HHX$XX$%++%%%%%++/;;;//%+$$%+/+%%%$$$%%++++++++%%%$%$$$XX$XXXHHH@HH@                    
                    + MH@HX%$X$%%$$$%++/:;;/++/%%%+%%%%%$$%$$%$%$%%+%%%%%$$%X$$XXXXXXXXXHH@@M                   
                    @@H@XXX$HX$$%%%+////;++/+%++%%+%$%%%%%+%$$$$%$$%%$$$%$$%X$$$XXXXXX$$XHH@@                   
                   MHXXXXHHXX%//////;;//+++/+%+++%%%++%%%$$$X$%$XHHX$$%%%$$%$$%$$X$$$$%$XHHHHM                  
                  H$$$XH$X$+/+++//////;;+/++%+//+%%%$$$%%%%%%%%X%%%+%$$$%$$%$$$$$%%%+%%$HXHH@@HM                
                MHXXXXX$XX%%//////;;////+++++/+%%%%%%%%++++/%$%%%%%%%%+%%$$%%%%$%%$$%$$XXXXHHH@@                
               @H$$XXXXX$$%////+//;//++//+++/++$%%+++++/;////++++++$$%$%%$$/+$%$$%$X%$XXX$X@@HH@@               
             MMH$$XH@X$%$+/;/++/////////+////+/+%+/;;;;;;;;;//+++%%$$%%X%+$%%%%$X%$$$$XX$$$XXXHHH               
            +@$X$H@H@X%$$+++%%+//;;/;///+///++;/////;:;;::;;/+%%+$%X$$%$$%%%%$X$X$$X$$$XX$XXH@@H@M     .        
            MXX$X@@XX$$$%++++////;:::;;:;;;;;:::;///;;;;///++%%$%$X$%%%%$X$$XXXXXX$X$$$XXXXXXXHH@H@@ .          
           #HX$@@@@HXH$%%%%$%+/;;;:::;;:;;;;;;;/++////+++++%$$$%$$$%++$$XX$XHXXXXX$$XHHXHHH@@@HHH@H@M           
          M@$%XM@H@HXX$%%%%$%+/;:;;::;;::::;;;/++///++++%+%$X$$%%%%+$%$XHXXHX$X$$$$$XHHHHHH@MM@H@@@MM           
          HX%%HH@HHH$$$%$X$%+//+;/;:::=:;;////+/+++%%%%%$$$$$%++++++$$%$$XHH%%$$%$XXXH@@@MM@HHHM@MM@M           
          H+$XXH@@@X$HX$$XX$$%++++;;//;+++++//%++++%$%%%$$$%%+++++%++%$XH$%%%%$XXXH@@@@@@@@H@@@@MM@@@M+         
        @X$%$XXHH@HH$XXXXXHX$%%%++++++++%%%++++%%%$$$$$%%$$%++++++%+%%XX$%+%$XHHH@M@@M@@@@@@@@MMMMM@@#@         
       @$++%%XHHHHXHXXXHXHX$X$$$%%%%%%+%%%++%%%%%$$XXXX$$$%%%%%%%+%$X$$%%%$XHHMM@M#@@M@@@@@@@@@MMMM@H@M         
      MX+/++%$XHHHX$XXXHHHX$HHXXXX$$$$%%%$%%$$%$$$XXXXX$$$%%$$%%$%%$X$%%$$H@@@MM@M#@@M@@@@@@@@H@@@@@M@M         
     @$+////%%$XHHX$XHHHHHXXHXHHHXXXX$$$$$%$XX$XXXXXXXX$$$$$$$%$%$$$$%$XHH@@@@@@@MM@MM@@@@@@HXXH@@@@@H@         
     X%//%;;/$XXXXHH@HHHHHHHHXHHXXXXXXX$$%$XXXXXHHXXXXX$$$$$$%%$$$$$X$XXH@@H@@@@@MMMMM@@@@@HHXHHMH@M@@H         
     $///;;$%+$XXHHH@HHHHXH@@H@HXXXHHHHHX$XXXXHHHHHXHXX$$$$$$$$$$XXXHXXHH@@@@M@MM@@MM@@@@@HXHHH@M@MMH@@@        
    @%+;++++;+XXH@@HH@HXXXHHH@@@HHH@HHHHHHHHHH@H@@HHHHXXXXX$$X$$XXXXHXXHHH@MMMMMM@@M@@@@@@HHHHH@@@@@@HH@        
    @%+++++%+XXH@@@H@@HXXH@HH@@@HHHHHHHHHHHH@@@@@@HHHHXXXXXX$$$XXXXXHHXH@X@MMM#MM@MMHH@H@@@@@HHH@@##M#M/        
    H%+++%%$%X@H@H@HXXXXHHHHX@@HHXHHHHXHHHH@@MM@@@H@HXXXXXX$XX$XXHXXHHHHHHH@MM#MMMMM@H@H@@@HHHHH@@@M@#M@        
    H%++%%%$$H@@@HXXXXX$XHHXXH@HHXXHHHHHH@MMMMMM@@HHHHH@XXX$XXXXXHHHHHXHHHHH@M##MMMM@@@@H@@HH@@@@@@#M#HH/       
    X%%+%$$XHHHX@H$$$$$XXXHXXHHHXXXHHH@@@MMM@MM@@@HH@HHHHXXXXXXXXXXHXHXHHHHHH@M####MMMM@@@@@@@@@HH@##MM@@       
    X$%%%XXH@HXXHH$$$%$XHHXXXXXXXXX@HX@@M@MMMMM@@@H@@HXHHXXXXXXXXXXHXHHHHXHHHH@MM##M##MMMMM@@@H@@HHM@@M@M       
    X%%%$XXH@HH@HX$$$%$XXX$$XXXXX$$HHX@@M@MM##M@@@HHHHXHXXXXXXXXXXXH$HHXHXHHHHHMMMM###MMMM@MM@H@@HHHHH@H@       
    $%%%$XXH@H@@HX$%$$$$$$$$X$$$$$$XXXHH@HM###@@@@HHHXXHXXXHXXXXXXXXXHHXHXXHHHH@MMM###MMMM@MM@HHHHHHHH@@@       
    $%%$XH@@@H@@H$$$%$$$$$$$$$$$$$XX$$XXHHMMMM@H@@HHHXXXXXXHXXHXXXXXXXHXXHXHHH@@@@M#####MMMMM@@@@@H@@HHH@       
    $%+$XH@@@H@@X$X$%$$$$XX$$$$$$$$$XXXXHX@@MM@H@HHHHXXX$$XXXXHHHXXHHXXXXHXXXX@H@H@MM#####MMMMMMMM@@@@H@@       
    X$%$XH@@M@M@X$XX%$$XXHXXX$%$$$$$$$XXXHH@@@@@@@HHXXXX$$XXXHHHXXXHHHHHHHHHHHHHHH@@M####MMMMMMMMMMMM@@H@       
    X$%$H@@@M@M@H$X$$XXH@H$$X$$$$$$$$$$$XH@MM@@M@@HXXXXXXX$$XXHHHXXXXHHHXHHHHHHH@H@@MMMMMMMMMMMMMMM@@MM@@       
    X$%$H@@@MMM@H$X$XXXHXXXXX$%%%$$$$$X$XH@MM@@@@HHHX$$$XXX$$$$X$$XHHHHHH@@HHH@@HH@MMMMMMMMMMMMMMMM@@MMHH@      
    HX$$H@@@MMMHXXXXXXXXXX$$XX$$$$$$$XXXH@@MM@@HHHXX$$$$$XX$XXXXXXXXXXXHHHHHXHHHHH@MMMMMM#MMMMMMMM#@@@@HHH      
    HX$X@@@@MM@HHHXXXXXHHHXXHXXXXX$$XXXXXH@@M@HHHXXXXXXXXHX$XXXXXXXXHHHHHH@@H@@HHH@M@@M@M#MM#MMMMMM@@M@@HH      
    HHXX@@H@MM@HXXXXXXXHHH@HXX$$$$$%$$$$$H@@@HHHHXXXXXXXHHXXXXXXXXXXXHHHHHHHHH@HHH@@@@@@MMMMMMMMM@@@@M@@XH      
    HHXH@@H@MM@HHHXHHH@@@HXXXX$$%$$$$$$XXHM@H@H@@HHHHHXXXXXXHHHHHH@@@HHHHHHHHHH@@@@@@@@@@MMMMMMMM@@@@M@@@@      
    HHXHMM@MM#@@HXXHHHHHXXXXXXXXXXXXXXHHH@#M@MH@HHXXX$XXXXX$$$$XXXXXXHHHHHH@HHH@@@@@@@@@@@MMMMMMM@M@@@@M@@      
    @XXHM@HMMM@HHHXHHXHHXHHXHHHXHHHX@XHHHM#@@@HHHX$X$$$$$$$XXXXXXXXXHHHHHHHHHHH@@@@@@@@@@@@MMMM@MMM@@@M@@@      
    @HH@M@HM##@HHHXH@H@HH@@@HHXHXX$XHXHHH@MHXHXXXXXXXXXXHHXX$$XXHXXXXXXHHHHHHHH@@@@@@@@@@@@@MMMM@@MM@@@@HH      
    @H@MMHHH##@HH@XX@H@@@@HHHXXX$X$$X$$$H@@XXHXXHHHHHHHHHXXH@@@HH@MM@HHHHXXHHHHHHH@@HH@@@@H@@@@M@@@M@@@@@H#     
    @@@MMHHHMM@HH@HXHHHHHX$X$$$%%$$$$$$$X@@HH@HHHHHXXXXXXXX$%%$XHHXXXHH@HHHHHHHHHHH@@@@M@@H@@@@@@@@#@M@@@HH     
    @@@MM@HX@M@HX@HHHHHXX$XX$$$X$XXX$XXXXHHHHHHXXHX$$$$$%%%$$X$$XXXXHHHHHHHHHHHHHHHH@@@@@HHH@@@M@@@M@MMM@HHH    
    @@@MM@HHH@@HH@@XHXXXX$XXXXXXHXXX$X$XXHXXXXXX$X$$$$$$%$$$$$$XXXHXXXXHHHHHHXHHHHHH@@@@@HHHHH@@@@@MMMMM@H$XM   
    @@MMM@H@H@@HHHHXXXXXHXHHXHHX$%$$$$$$XX$XXXXXX$$$$%$%$$$$XXXXXXXXXHHHHHHHHXHHHHHHH@@@@@HHXHH@@MMMMM@M@HX$@,  
    @@MMM@HM@@@@HH@HHHHHXXX$%%%%$%$$$X$$XXXXXXXX$$$$$$XX$$$XX$$$XXXHHHHHXHHHHHHHHHHHH@@@M@@HHHHH@@MMM@@M@HXX@.  
    @@MMM@@#M@@@HHHXHXXX$$$%++%+%+%$$$XXXXXXXXXX$$$$$XXXX$$$$$$$XXHHH@HHHHHHHHHHHHHHHH@@@@@HHHXHH@@M@@@H@HHX@.  
    HHM@M@@MMMM@HHHXHX$$$%%+%%%%$%%$$$XXXXXXXXXX$$$$$$$$$$$$$$XXH@@M@MHHHHHXHHHHHHHHHHH@@M@@HHHXHMM#MHHH@H@X@.  
    MXHMM@@MMM@@HHHXXX$$$XX$$%%%%%%%$$XXXXXXXXXX$$$$$$$XXX$XXHH@@MMM@MHHHHHXHHHHHHHHHHHH@M@@HHXXHMMM@HH@M@@H@,  
    @X@@MM@MMM@@HHHXX$$$$$%%$$%%%$$$$$$XXXXXXX$$$$$X$XXHHHHH@@@M@@@@H@HHXXHHXHXHXHHHHXXH@@@@HHXXH@@@HXH@M@@H@-  
  . @XH@@M@M##M@HHHXX$$$X$$$XX$X$X$$XX$$$XXXXX$XX$XXHHH@@@@MMM@@@@HXHHHHXXHHXXXHXHHHHXXHH@@@HHHHH@@@HXH@#@@@@-  
     HHH@MMMM#MMHHH$XXXX$XXXX$$$$X$$$$$$$XXXXX$XX$XXH@@@@MMMMM@@HHX$HXHXXXXXXHXXHHXXHXXHH@@@HHHHHHHHHHH@M@@@@,  
     @XH@M@@M#M@HHX$XXXXXXXXXHHX$$XX$$$$$X$$XX$XXXXXH@H@@@@M@@HXXX$$XXXXXXXXXHXXXXXXXXXXHHH@HHHHXXXXXXX@M@@@@.  
     M$HH@@@M##@HXHXHHHHXH@HH@@HHXHHX$$$$X$$XX$XXXHHH@H@@@@@@HX$$X%%$$XXXXHHHHXXXXX$XHHXHHH@HHXHXHHHHHH@M@HM@   
      HXH@@M@#M@X$XXXHHHH@@M@MM@@HHHXXX$$XXXXXXHHHHHHH@@@H@@@HXXX$X$$XXXXHHHHHHXXXX$XXHXHHHHHHXXXH@@@HHH@@H@M-  
      @HHHM@M#M@HXXXXXXHH@MMMMMM@HHHXXHHXHXXHXXHH@@@@@MMM@@@MMM@@HH@HXXXXXHH@HHHXXXXXXXXXHHHHXXHH@MMM@HH@H@@@   
       MXH@@@MM@XXXH@H@HH@@@@@@@@@@@HHXXHHHHHXXHH@@@@MMM@M###MMMM@@MM@@HHHXXHHHXXHHXXXXHXHHHHXXH@M#MM@@HH@@M.   
        HX@M@M@@XXXXHXHHXXX$HHHH@M@@@@HHHHHHHHXH@@@MMMMM@#M#######M##MMM@HH@@HXXXHXX$$XXXHHHXXXH@M#M#@@HH@M     
        @HH@MMMHHHXXHXXX$XX$HH@@@MM@MM@@HHHHHXXH@@MMM##MM#M##M#######M#MM@XH@@HHXXXXXHXXXXXXXHH@@M#M#@@HH@-     
         @XMM@@HXXXXHXX$XHHHM@MMM#MMMMM@@HXXXXXH@@M####MM###@HHM####MMMMM@XXHHHXXX$XXXX$XXXXXXXH@M###@HHX@.     
         @XHMMMHXXX$XXXHMM##########M###@HXX$$XHM@M######M@HHHH@@MM@HHHHH@M@HXXHHHXXHXHHXXXXXXXXHM#MM@HHH@      
          HH@M@@XXHXHHHM#M#############M@X$$$$XH@@@MM@MM@@@HXHXXHHHHHHXHH@HHHXXXXXXXXXXXXXXXHXXXH##M@@HH@H.     
          @HHMHHXXXHXM###MM######M#####M@X$%%$XXHHH@@@@@@@HHXXXXXXXXXHHXHHHHHXXXXXXXXXXXXXXXHXXX@M#@@HXH@       
          #HHHHXX$$XHM##M@@####M@@MMMM@@H$%%+%$XHHHHH@HH@@@@HHHHHHHXXXXXXXXXXXXXXXXXXXXXXXXXXXXH@MMHXHH@M.      
           H@$XX$$XX@M#MHXX@@@@HHH@@@@@@H$%%%%$XXHHHXXXHH@@@@@MM@@@@HHHHHHXXX$XXXXXXXXXXXXXXXXXH@@HH@HH@@       
          . @X$$$$XX@@MHHHXHHXHXXH@@@HXHX%++%%%$XHHH$XXHH@@HH@@@@@@@@HHHHXXXX$$$X$XXXXXXXXXXXXX@@HXXHXH@M,      
            .@X%$%$$@@@XHHHHXXXXH@@@@HXHX%+%%$$XHXXXXX$$$XXXHHHHHHH@HHXXXX$XXXXXX$XXXXXXXXXXHXXH@$HXHH@@+       
              H%%%%$XH@HHHXXXXHH@@@@@HXH$%%%%%$XXXXHXX$$$$$$XXXXHXXXXX$$$$$XXXXXX$$XXXXXXXXXXXXHX$XX@HH#;.      
              M$+%$$XXHHHHHH@@@@M@@@H$XXX%%%%%$XXXXHXXXXXX$$$$$$$$$$$%%%%%%$$$XXX$XXXXXXXXXXXXXHXXXXX$H@.       
              M%%%%%XXH@MM@@@@@M@@HHXXHHX%%%%$XXXX$XXXXX$$$$$$$$$$$%%%%%%$$$$$XHXXXXXXXXXXXXXHHHX$XX$XH-        
               $%%%%$XH@@MMMMMM@HHXXXXHHX$%%%$XXXX$XXX$$$$$$$$$$$%%$+%%%%%$$$$XXXXXXXXXXXXXXXHHHXX$$$XM         
               X%%%$$$XHH@MM@@HHX$$X$XHHX$%%%%$$XXXXX$$$$$$$$$$$$%$$%%$$$$$XXXXXXHXXXXXXXXXXXHHHX%X$%$#         
               @%%$$$$XXXXHHXXX$X$XX$XHX$%+%%%$$$XHXXXXXXX$$$$$$$$$$%%%$$$XXXXXXHHHXXXXXXXXXXHHXX$X%+H#         
                X%$%XXXXX$$$$$$$$$$X$XHX$%+++%$$XXXXXXXXHHHXX$$$$$$%$%%$$$$XXXXXHHHHXXXXXXX$XHHX$X$%%X;.        
                X$$%XXXX$%%$$$$$$XX$XHHH$%+%+%%$XX$XXXXXXH@@HHXXXX$$$$$$X$$XXXXXXH@HHXHXXHXXXHHXX$%%$@-         
                X$X$XXX$$%$$%%$$$$XXH@XX$%%%%$$$XXXXXX$XXHH@@@HXHHX$XX$XXXXXXXXXXH@@HXHXXXXXXHHX$X%%HM          
             .  H%XXXXX$$$$$%%$X$XHH@@XX%%%%%$$$$XXXX$$XHHH@MM@HHHXXXXXXXXXXXXXXXH@@HHHXXXXXXHHXXXHH@           
                H%$HXXXX$$$$$$XXXX@@HHXX$%%%+$%$$XXX$$$XXXH@MMM@HHHXXXXHXXXXXXXXXXH@HHXXXXXXXHHXXHM$            
                @%%XXXXXX$$$$XXHHH@#XX$X$$$%%$%$XXXXX$XXXXH@MMMM@@HHHHHHXXXXXXXXXXH@HHHX$$X$XX$XX@,             
                M$$XX$HHX$$XXXHHH@@@XXXX$%%%%$$XXHXX$$XXXXH@MMM##MHH@@HHHHHHHXXXXXHHHHHX$$X$$X$%H#              
                 H%HHXHXHXXXXXH@@MMH$$$$$$$%$$$XXHXX$XHHHH@M@@M#MMM@@HH@HHHHHXXXHXXHHHHX$$XX$XX%H@##+           
                 H%XXXHHHXXXXXH@@M@X$$XXX$$$X$$$XXXHHH@@@@MM@@@@MMMMM@H@@@HHHHXHHXXHHHHXX$XXXHXX$$X$XXX#        
                 @$XXHXHHHHHH@MMM#MHHHHHHHHXHX$XXXXHM@MMMMMM@@@@MMMMMM@@@@HHHHHHHHHXXHHHXX$$XXXHXXX$;/+$H@@@    
                 @$$$XX@HHH@@@M@M#M@@HHHXXXXXX$XHXH@#M##MM@@@@@H@MMMM@@@@@HHHHHHHHHXXHHHXX$XHHX@HXXXX++%++%%$HMM
                 .X$XXHH@@@@@@MM###MMMMM@@@HH@HHHHHM#MMMM@@HHHHH@MMMM#M@@@@HHHHHHHXXXXHHXX$XHHH@HHHXHX$$$$+;/;/$
                  H$XXHH@@@MM@MM###M@MMMM@@@H@HHH@@#MM@@HHXXXXHXH@@@MMMMMM@@HHH@@HXHXXXHXXXHHH@H@HHHHXHX$$$$+;=:
                  @%$$HH@@MM@MM#M#@MH@MMM@@@@@@H@@MM@HHHX$$$$X$XXHH@@MMMMM@HH@@@@HHXXXHXX$XHHH@@@@HHHHXXXX$XX%;=
                  @$$XH@@@MM@@M#MM@HXXHHH@@MMMMMMMMMHXX$$$$%%$%$$XXHH@MMMM@HHH@@@@HHXXHXXXHHHHH@@@@@HHH@$$HX/$@%
                  @+%$X@@@MMMM##M@H$$$$XXH@MMMMMM#M@HX$%%%%++%%+%$$XXH@M@@@HHHH@M@HHXXHXXXHHHHH@@HH@H@HXXXX$$%$$
                  M%%$HH@@@MMM#M@H$+%%%%$X@@@MMM##@X$$+++%+/++++%$%$XXH@@@@HHHH@@@HHXXXXXH@@HHHH@H@@H@@HHH$$X$%$
                  M%+$H@@@@@MMMHX$+/%+++%$XHH@MMMM@XX$%++%//+++%+%%%$$XH@@@HHHH@@@HHHXXXH@@HHHHH@@@HH@HHXHHX$$XX
                  +$/$H@H@@@MM@X$%//++/++%$XH@@@@@@XX$%%%%//++%%+%%+%%$XH@HHHHH@@@HHHXXXH@@HHHH@@@HH@@XXHX$XHX$$
                  @%//X@HH@@@MH$%+////+++%$XHHH@M@HX$$%%$%++++$$%$X%%%%$XHHHHHH@@@HHXXXHH@@HHHH@@@@@HHH@HHHX$XHX
                 @$/:;XHHH@@@H$%++/++/+++%XHHH@@@HH@HHHX$%%$+%HX$X@XX$%XXXXHHHH@@@HHXXHH@@@H@@@@@H@@H@HHHHHXHHXX
               @X+/=--+H@HHHHX%%++/$//++%$HH@@@@@@@HXH@XXXHX$XM@HM#M@H$XXXXXHXH@@@HXHHH@@@@HH@HHH@@@HH@@HHHHHHHX
              H%;-,.,-/XXHHHX$%$%%+$%%%$HHH@@@@@M@@@HXHHHH@@@@##MM#M@HXXHHXXHXH@@@@HH@@@@@@@@@H@@@@@@@@@@@HHHHHH
            H%;=-,..,-;$HHXX$%%%$%%XHHH@M#MMM@@HHH@XXXHXHXHH####M@MM@HXXHHXXHHH@@@HH@@@@@@@@@@H@@@@HH@@@H@HH@HHH
          H%;=,  .,---:%$XXX$++%$XH@M#M####M@HHXXXXX$$XHX@M@MM@@@H@@HX$XHHXXHHH@@HXHH@@@@@@@@@H@@@@HH@@HH@HH@HXH
      MH$/:-. ...,,--==/$XX$$/%$XHMM##M#####M@@HXHX$$XH@HM#@H@HH@H@@HX$$H@HX@H@@@HHH@@@@@@@@@@@@@@@@@@@H@@HH@HXH
  HX%;:-,,   ...------=;%HX%%+%%XHMMMMMM##M##MM@HMMHHMMM@HXXX@@H@HHHHXX$XH@H@@H@@HH@@M@@@@@HH@@@HH@@@@@HHHHH@HHH
X%+;=-,...   .,,.-----==:$HX$/+%XH@M@@@@M@@@@@@HHHHH@HXHHHXHXHHHHHXXXX$$XH@HHHH@HHH@@@@H@@@HH@@@HHH@@HHHHHHHHHHH
;==-..    . .,.,,-,-,-=-:+$$X++%XHH@HH@@@@@HHHXXXXXXHHXHXHXXHXHHXHXXH$$$$XHHHH@@@HH@@@@@@@@H@@H@HHH@@HHH@HHHHHHH
-..       ...,.,,-,,,----;%$X/++$H@HHXHHHHHHXXX$$$$$XXXXXXXXXXHHXXHXH$%%%$HXHHHHHH@@@@M@@@@HH@@@HHHHHHHHHHHHHH@H
       ..   ,-,,---,,--=-:/$$+++$XXXXXHHHHHHXXXXXXXXXXXXHHHXXXXHXXXX$%%%+$XHHHHHHH@@@@@@@@@H@@@@HHHHHHHHHHHHHH@H
   ......   ,-,,---,,--===:++++%$XXXX$XHH@HHHHXHHHHHHHHXHHHXHHHHXXXH$+%++$XHHHHHHH@@@@@@@@@HH@HHHHHHHHHHHHHHHHH@
       ..  .,-,,-=-,,---===;:/++$X$XX$XXH@HH@HXHHHHHXHHHHHXXHHXXXX$$%+%%+%$HHHHHH@@@@@@@@@@HHHHHHHHHHHHHHHHXHHX@
......... .,,--,--,.,,,-=-=::;/+%%%$XXXXHHHH@HXHHHHHXHHHHHHXHXXXX$$%$%/+/++XXHHH@@@@@@@@@@@H@@H@HHHHHHHHHHHHHHXH
  . .. ., .,---,--,.,---=-==:;/++++$$$XXXHHH@HHHHH@HHHH@HHHHHXXXX$X%$%/+//+$XXHH@@@@@@@@@@@@@@HHHHHHHHHHXHHHHHXH
...... ., .,-=----,.,,------=::///+$%$XXXXHXHHHHHHHHHHH@HHHHHXXH$$%/++/+//+$$XHH@@@@@@@@@@@HHHHHHHHHHHHHXHHHHHHX
...... .. .--=--,,,.,,---==-=::;;;/%%$X$XHHHHH@H@@H@@HH@HHHXXXXH$$%+++/;;;+%$XHH@@@@@@@@@@@@@@HHHHHHHHHHHHHHXXHX
.....  .. .--=--,,,..----=--==::://+%$$$XXXHHHHHHHHHHHHXXHXX$X$X%%+///;;;;/%$XHH@@@@@@@@@@@@@@HH@HHHHHHHX@XX@$HX
.....  .. .----,,,,.,-====-=::::;/;/%$$$$$XXXXHHHHHXXXXXXXX$$$$%%+++//;;;;+%XXHH@@@@@@@@@@@@@HH@HHHHHHHHHHXHH$XX
....... ...-=--,,,,.,--==---==:::;;++++%%$$X$$XXXXXXXXX$$$$$$$$%+/++;;;;;;+$XXHH@@@@@@H@@@@@@HH@HHHHHHHHHHHH$XXX
.... .. ...-==-,,,,.,--==-----=::::;//++++%%%$$$$$$%%%%%$%$%%%$%+/+/;;;;;/+$XHHH@@@H@@H@@@@@HHH@@HHHHHHHHHHHXHX$
.... .. ..,-==-,,...,--==------=:::;;;//+++%%%%%$$$%%%%%%%%+%+%+/+/;;;;;;/%XHHHH@M@H@@H@@@@@@@H@@HHHHHHHHHHXXHXX
....... ..,-==-,,...,-===----====:;;;:;////++%%++%%%%%%%%%+/%++//+/:;;;;;/%XHH@H@M@@@@@@@@@@@@@@@HHHHHHHHHHHHXXH
...... ...,-==-,....,--==-,,,==:;:==:;;;:;/+++++%+/////++%//+/+/;//;;/;;/+$XHHHH@@M@@@@@H@@H@@@@HHHHHHHH@HHHHXX$
.....  ...-==--,..,,,--==--,,-=:;:::::;::;/++++//////++++%/;/;//;;/;;/;;/%$HHH@@@@M@H@@@H@@H@@@@HHHHHHHHHXHHXX$/
.........,-=-=--...,,-===,,-,-==::::::::;;/+///;;/;;++/++%/;/:;/;;;;/;;/+%XXH@H@@@@@@@@H@@HHH@@@HXH@HHHXHHXXXX%:
.........,-===,,,..,,-===-,-,,==::::::=:;;/+///;;;;;////+%+;/;/+/;;//;//%$HHH@@@@@@@@@@@@@HHH@@@HHH@HHHHHHHXX%/=
.,.... ..,-==--,,..,,-=-=-,,,,-=::::::=:;;//////;;;//;/;+%+;;;+++;;;///+$XXHHH@@@@@@@@@@@@HHH@@@HHHHHHHHXHHXH/:=
.....   ,--=:---,..,,---=-,,,,,-===:;:=:;;//;;;;:;//;;;;/++;;://+;/;//+%XHXH@H@@@M@@@@@@@@HHH@HHHHHHHHHHXHH$%:--
.........,-=:-,,,..,,-----,,-,,-====::=:;;;;;;;;://;//////+/;;/++;/;/++$HHH@@H@@@@@@@@@@@@HHHHHHHHHHHHXXXXX%;-,-
...    ..--==-,,,.,,,-=---,,-,,,---===::;;;;;/;;;//;++//////;;/++/+/++%XH@@@@@@@@@@@@@@@@@HHHHHHHHHHHHXXXX$+=---
,,,....,,-==--,-,,,,,-=---,,,,,,---=-=:;;/;::;::;///+/;;///;;;;/////+$XHH@@@@@@@@@@@@@HHHHHHHHHHHHHHHHXXHX%/--,,
..... ..,-=:--,,,,,,,-=----,,,------,-::;;;;;;;;//+++///;//;;/;//+/+%XH@H@M@@M@@@@@@@@@H@HHHHH@@HHHHXXXX$$/=----
,...  .,,-===-,,,,,,,-=---,,,-,,----,-=::;;;:;;;/;/+/+/;;;:;;/+//++%$H@@HH@@@@@@@@@@@@@H@@@HH@@@HHHX$H$$$+-=-,-,
.......,,-==--,,,,,,,-=--,,,,,,,,------=:;::;;;;;;;+++/;;::;;;///+%XHH@@@@@@@M@@@@@@@@@@@@@@@@@H@HHX$XX$+;------
.......,,-==--,,,,,,,-=--,,,,,,,,-----,-==::///////+++++///////++%$H@@MM@@@@@@@@@@@@@@@@@@@HHHHHHXXHH$X%:=---=--
,......,,===--,,,.,,,-=--,,,,,,,----=-,---::;//;;+;;//++//////;+%$XHMMMMMM@@@@@@@@@@@@@@@@@HHHHHHHXXX%%+=-=---,-
,.......,===--,,,.,,,---,,,,,,,-,---=-----=:=;+//+//%++%++%%$$%$XHH@MMMMMM@@@@@@@@@@@@H@@HH@@@HXXHX$$$/:--------
,.....,,-===--,,,,,,,---,,,,,,,-,---=---=-,==+$%%+%$$%X$$$XXHHXH@@@MM@MMMM@@@@@@@@@@@@@@@H@@HHXXXX$$X%:-=--,----
......,,-===---,,,,,,---,,,,,,,,----------==-=%HX$HHXX@HHHHH@@@@@MMMMMMMMMMM@H@@@@@@@@@@@@@@HXHHH$$$+;-----,=---