.//,,*****,,,,,,(#/***,*****,*/***(*,,,,,,,,,.,/.                                                             
                                                                                     ..,,,,,,****,,,*/////*,*##***,,,.,,**(/,*****,,,,,,,,.,.                                                           
                                                                                .,***,,,,,,,,,,,*/((((/*******,**,,,,,,,*(********,,,,,,,,,,.,,                                                         
                                                                            .,.,**,,,,,,,,,,,,(((/**,,,*****,,.,,*,,,,,,//(#/******((*..,,,.,...,                                                       
                                                                        .,,,.*/,,,,,,,,,,,.*#/**,,,,***/*,...,***,,,,*,,,,,.*#/*,,****/#*..,,.... *.                                                    
                                                                     .**,,.*/..,,,,,,,,..*(/**,,,***/*....,,,,,*,,,,,,,,,,,,.,((,,,,,,***(*,.........                                                   
                                                                   ,*,,..*/,....,..,....//**,,,**/*....,,,,,,,,,,,,,,,,,,,,,,../(*,,,...,*/(*,,.....  .                                                 
                                                                 ***,..,/*.....,..,...,(***,,**/*....,,,,.,..,,,,.,,..,.........*/*,,,.....*//*,,.....                                                  
                                                              ,**,,,..*/,....,.......,/***,**/,..,..,,,.....,,,,..,,.............*/,,,,....  ,(/,,,.....                                                
                                                            .,*,,,,,.//.............,/*****/*.....,,,......,,,,..,*,............../*,,,,,....  ,/,,,,..... .                                            
                                                           .,,,,,,..(*.............,/****/*.....,,,.......,,,,...,*.............,.,/,,,,,,,,...  ,/,,,,..... .                                          
                                                           .,,,,,.,(............. ./***/*.....,*,...,.....,,,...,*,.............,..*,,,,,,,,,,,.. ./*.,,,... ..,                                        
                                                        ...,,,,,,*/.............. ****/,.....**..........,*,..../*..............,. */.,,,,**,,,,,. .*,...,,..  .                                        
                                                       ...,,**,,*/,............. .****...,.,/,..........,*,....**...............,. ,/.,,,,,***//*,*,,*,.....,.......                                    
                                                      , ,,,,,,,*/,.,,,,......... ,*/, ...,(*...........,*,....**,................. ,/,.,(//((,,,,,,,****.. .....,,.,...                                 
                                                     . .,,,,,,*/,,,,,,,,.. .. .  **.   ,/(............,*,....//,...   ...... .  .. *(..,,****#(,/%#*,,/(/,..  ....,,,,,..,                              
                                                    ...,,,,,,**,,,,,,,,,........,*...,*/*...........,**,....//,.........,,,,,,..,../(*..,///((/**/,,(##(/**,....,,.,*,,,,,,,,.                          
                                                    ...,,,,,,,,,,,,,,,,.,,,,..*/*,,**,/*........,,,***.,*,*(/*,,,*,,,,,,,,,,,..,, ,/*#/..,,,,,*/**((/*,*((*,,.....,,..*.. ....,*,..                     
                                                    ....,*,,**,*,,,,,,,,,,,,*/,**/*.,/*.,,,,,,,******,****//******,,,,,,,,,,,.,*../*.///,.,,,,,***,.... .**,,**,..,,,,..      ..,,...**.          ..    
                                                   ...,/,,,,,****,,,,,,,,,*/*,,/**,,**.,,,,,.,***,**,,,**//******,,.,,,,,,,,.,*..*/,.*/,/,.,,,,,**,..... **,******,..,,,.                               
                                                  ..,/,.,,,,****,,,,,,,,,**..**.,**/*..,,,*,,**,,**,,,**//******,...,,,,,,..,*,.*/*, */,,**,,,,,,**,....../****,,****,.,,,..                            
                                                  .*...,,,**/(*,,,.,,,,,*,.**...**//,.,,,*,,,,.,*,,,.,**/*,,,*,,...,,,,,,,.,*,.*/*,..*/,.,**,,,,,**,,...../*,,*,,*****/,.....                           
                                                 .,..,,,,*##(*,,.,.,,,,*.**..,..*//,.,,,/,...,,*,,.,,**/,,,,,,,..,,,.,,,,.,*,.*/**,..(*. .,**,,,,,,,,..,. */,,,,,,*****/*.....                          
                                                ...,,,,(#/*//,,...,..**,*,....../(,.,,,/*....,*,,,,,,//,,,,,,,..,,,,,,,.,,*,,/***,..*/,,,**//*,,,,,,,,.,,.,(.,,,,.*/****(/.....                         
                                              ,...,,*((****/,.......***,.....,.,//.,,,//.,.,***,,,,*(*,,,,,,,,,,,,,,,,,,,*,*/,*/****#(/**,,,**********,,,.,(.,,,...****,. .....                         
                                            ,...,,*#(*****/,.......***,........,/,.,*/(**,*/*****/(%#(/*,,,,,,,,,,,,,,,,,,/**//*.../,       .,**,,,,,**,,..(,,,,...,/**,.  ,...,                        
                                           ....,,,*******/*.......*/,........,.**,,,*/,.,,,,,*,,****,,,,,,,,,,,,,,,,,,,,**,,,**,.,/,         .,*,,,,,,*,,..(.,....../**,.   ...,                        
                                          ....,,  .*****//,......**...,.......,/,,,*/*.,,,,*/***,,*,,,,,,,,,,,,,,,,,,***,,,,*,,,*//**,,,,,,,...,*,,,,,**,..(........*/*,,   ,..,                        
                                        .....,.   .*****//......,*,.,,....,.../*.,,**,,,,*/**/*,*//*/**,,,,,,,,,,,,,***,,,**,,*/*.     ...... .,**,,,,**,.,(........,/,,,    .,,                        
                                       .....,      .****/,......,,.,*........,/.,,*/,,,*///*    ,*,,,,,,,,,,,,,,,,,,**,,,**,*/,.,/#&@@@@@@@@@@@&&&(/*,/*,.*/........./**     ,,                         
                                      ....,        .***/(.......,,.**...,,..,*,,,,/*,/##&&&@@@@&%%%(((/*,,,,*,,,,***,,***,,,  *%&&@@@@@@@@@@%//(#%#/**(/,,/,....,....**,    .                           
                                      ...           .**/(...,,,...,/*,,,,.,.**,,*(%&@@@@@@@@@@@@%(///((*,,,***,,.,,,......     ,*%@@@@@@@@@@%*,*,/#**/(/,,/....,,....*.    .                            
                                      ...            .,*/...,,,,..,/*,,,,,,,**/(((%&&@@@@@@@@@@&#*,,,,....                     ,/%%%&@@&#%/.    ,#/**//(,/*...,**,...,                                  
                                     ...               ,/...,,,,..*/**,,,,,,,,,*(//*#@@&&&@@@%(,                      ...       *(,./##*..*/,  ./*/*/*//**,.,.***...                                    
                                                        ....,,,,.,#/**,,,,,,,,,,*/*.,#/**/%&(,.*(,                  .......     .(*. ....**.  ,*,./*,*((/,..,***,.. .                                   
                                                        .,..,**,,,/(***,**,,,,,,,,**.,(,.     .//.                ..........     ,(/*****/, .....*/,**#/.,,,****,.                                      
                                                         ....***,*(,(/**,,,**,,,,,,**..*(/****,... .               .....,...          .........,**,*/(*.,*******,                                       
                                                          . .,***/* ,/*/,.,**,,,,,,,,*,,,............                    *.             .....,,..*/**.,*******/*.                                       
                                                           ...,**/*,*   ,********,,,,,*,.,..........                                   ..,,,,,,,*(*,,*****,, .,                                         
                                                            ..,/**/.*,     *////*//**,,,,.........                                           ..**,*****,,   ....                                        
                                                             ../(*/,  .,.   ,,,,*,  .. .........                                         .,***///..        .                                            
                                                              ... ..  . ..,.....,,                                                             .    ....                                                
                                                                    .                                                                         ..                                                        
                                                                               /%%%%%/.                                                      .,                                                         
                                                                         .*(#%%%####%%&#,                     ,*...    .,/*                ..                                                           
                                                                    .,*/(#%%%#%%&&&&&&&&&&#*.                                           .*.                                                             
                                                                 ,*/(#%%%%&&&&&&&&&%&&&&%&#,*(/,.                                    .,.                                                                
                                                              .*/(%%%&&&&%%%%%%%%%&&%#(/(#(,,,,,*(/,                              ,.                                                                    
                                                            .*(%%%&&%%%%%%%%%%%%%&%/(#(/*(#/,,,,,,,,,*(/,.                    ..                                                                        
                                                             .(%&&&%%%%%%%%%%%%#(**(#//*//**/((/*,,,,,,,,,**//*,.         */.                                                                           
                                                               *#%&&&%%%%%#((//***((/*////////**/(#(*,,,,,,,,,,,**/////(#//(*,.                                                                         
                                                                 (%&&%%(.   ,***/#(*/**////**///*/***/##*,,,,,,,,,,*##(###/**(/...,,                                                                    
                                                                    .    ,*****((/*/////////////**//*/***/((/,,,,,,*####((((/**//,...,*                                                                 
                                                                      .,****/(*(/*////////////////////////***/(/*.,/%#/**/*/((/*//*,***..                                                               
                                                                   .******((*((/*///////////////////////*///*/(#*/(##/(#(/**//#####(/**,..                                                              
                                                             ,*******/##%#*/%%***///////////////////////*//*/(/**(&%%&%(/#/*//*/##(((((#%(,                                                             
                                                      ..,,,******(##((///((##//#(/*/////////////*///////*//*((**#@&&%%%&%(((**/*(##((((((((((/*,.. .                                                    
                                               ..,,,,****,**/##(****//*///*//(#(/((/*/*/////////////////*/*((**#&%%%%%%%%&#/(/*/*/##/////((((((((((/*,,,,,,,...                                         
                                          ..********,,,/#%(/**/*///**//*//*/*/(((#//(///////////////////**((/*(&%%%%%%%%%%%&#/(///*(#/*////////////(((((///*,,,,/#/*.                                   
                                      .,****,,,,..*((,*(/*////////////////////*//((((/(/**/*/////*///*/*/((/*(&&%%%%%%%%%%%%%%/((#(,,((//**///////*****/****//*/(##/*//*.                               
                                  .,*,,,,,..,,/#(//*//***/*/////*////////////////*//(##//(/**//////(/*/*/(/*/%&&&%%%%%%%%%%%####/(((/%#(/**/////////////////**//*/#(//*//*.                             
                         .    .,,,,,,,,..*(****///(##/**/*////////////////////////*/*//(%(/#(///*,,((/*///*/#&&&%%%%%%%%&%%#(#((##(/(##%(//*//////////////////****((/*//*//,                            
                     .     .,,,,,,,,.,*/*,*////////*//##/*//**//*////////////////////////(##*/#(///*/#(***(#(#&&%%%%&@&&&&&%%%(//(##((//##///////////*///////*/((/((/*////*/*.                          
                 .     .,,,,,,,,,.*//*(*,*//////////**//(#/*/*//*////////////////////////*//(#/*/((/**/(#((///(#&@&%%%%&&&%%%##%(***///((//////////*/////////*/(((((//**///*/*,                         
                   .,**,,,,,,,,*(/**/(/*//*/*/*/*///*/***//(/**///*/*/*/*/*/*/*/*/*/*/*/*/**//(##((((((///****/((&&%%%%%&&&%%%%###/*/*/**/***///**//*/*/////*/*/((((//*/**//*/*,                        
                .**********,,/(***/*(/,*///*//////////////*//(/*/*////*//*/////////////////////*////**////////**(#&%%%%%%%&%%%%%%##%/*/*//*///////////////*/((//*/##/(/*///*///*.                       
          .  .********,,,  *(******#(,*/**/////////////////*///#/*///*/////////////////////////**///*/////////*/*(%&%%%%%%%&%%%%%%%##%/*/*//////////////////*//((/(%(((/////*/*/*.                      
          .********,.     .**,.,,  ,,*///*////////////////////**/#/**/*/////////////////////////////////////////*/(%%%%%%%%%%%%%%%%%%###/*/*///////////////*///**((#%((//*/*//**/*,                     
       .,****,,,.        ,,....   ,,,/////*/////////////////////*/(#/*/////*///////*////////////*//////////////*/*/#%%%%%%%%%%%%%%%%%%%##(/*/////*//////////*/*//*,/%#((//////////*.                    
      .***,,,.          ,.....   .,,/////*////////////////**///////*(#//////*/((/*////////////////////////////*//**/%%%%%%%%%%%%%%%%%%%%%%#(***//////////////**////*,(#////*////*//,.                   
    .,*,,.              ,..      *.*/////////////////////*//////*///*/(#////*(#/*//////////////////////////////////*(%%%%%%%%%%%%%%%%%%%%%%#(/*//*///////////*///////*,%#////*///*//,                   
   ,,,,                ...      ..,/////////*////*/(((/*//////////*/***/#(///(#/*//////////////////////////////////*/#&%%%%%%%%%%%%%%%%%%%%%%%(/***//////*/////******//*/%(*//////*//,                  
  .,.                  ..      .,,/////////////**/(#(////*//////*//////*/(#(/((*/////////////////////////***********/(%%%%%%%%%%%%%%%%%%%%%%%%##/*////(((((((###(((((////*(%/*///***/*.                 
                       ..      ..*////////////////((/*///*////////*//////*/#/#(*///*******////////((##########((((/(//(%%%%%%%%%%%%%%%%%%%%%%%%##/*/#/*//**/////////*///*/*,/(/*/*/*//,                 
                       .,     ,.,//////////////**///*///////////*//////////(%#*/(#(////////////***/********////*//**(//#%%%%%%%%%%%%%%%%%%%%%%%%#%(*(#**//////////*/(/**((/**,*(//////*.                
                             .,,*/////////////////*/////////////////////////%#*/((*//*/////////*/*/(((((/*//////*/**/(//#%%%%%%%%%%%%%%%%%%%%%%%&##(*#(*/**********/#(**/(//(%#//*/////,.               
                            .,,*/////////////*//*///////////////////////////((*/#(*///*/**//////*/#(,.,*((****/(#%#%#/*/(%&%%%%%%%%%%%%%%%%%%%%%&&%#(/#%#%%%%%%%%%%%###(/#%%(/#/**//*//*,.              
                            *,,//////////*/*///*////////////////////////////#///#%#%%%%%%%%####((/(##(((/(%&#(/*/***((*//(&&%%%%%%%%%%%%%%%%%%&&&&&%#(/#(////***//##/******/(**#////**//*.              
                            .,*////////*/*///*/////////////////////////////(#*///##((((//////(#(//////((///##/***//*/#/*//#&%%%%%%%%%%%&&&&&&&&&&&&%%#/(#/*////////((///////((,/#**/////(,              
                           .,,////////*////*////*//////////////////////////#(*///(#(//////////((//////////*(#(*////*/((///(%&%&&&&&&&&&&&&&&&&&&&&&&%%(/#///////////(///////((/,#/*//*//(((*            
                          ,,,*//////**///*//////*///////*//////////////////#/*((//##///////////(////////////#(//////*((/*//(&&&&&&&&&&&&&&&&&&&&&&&&&%%((////////////////////(/*((*///*//((%&&%#,       
                         .,.*////////(////////////////////////////////////(#/(#///(#////////////(///////////((////////(/////#&&&&&&&&&&&&&&&&&&&&&&&&%%#(////////////(///////(///#/////*/((#&@%#*       
                         ,.,////*/((//*////////////////*//////////////////#(#(/////((///////////(/////////////////////(/////(%&&&&&&&&&&&&&&&&&&&&&&&&&%#(///////////(///////((//#/*//*/((#%%(##.       
                        ,.,*///(##/**/////////////////**/((((////////////#%#///////((///////////((///////////(////////((/////#&&&&&&&&&&&&&&&&&&&&&&&&&&%(///////////////////((//#/**//#%%((((##.       
                       ,.,*(((#(***///////////////***/(#((//////////////#&(/////////(////////////(///////////(///////((//////(%&%&&&&&&&&&&&&&&&&&&&&&&&%(///////////(///////((//%%&%%#(((((((##.       
                      ..,/(##/**////////////////**/(#(////////////////#%(///////////((///////////((//////////(///////#(///////#&&&&&&&&&&&&&&&&&&&&&&&&&&%(/*////////#(//////((/#%####((((((((#%.       
                     .*/(#(/**///////////////***(#(////////////////*(%((////////////(%(//////////((//////////(////(##/////////(%&&&&&&&&&&&&&&&&&&&&&&&&&%/(###(((///&(*///(#%#//%###(((((((((#%,       
                   ./(#(**//*////////*/////**/#(///////////////////%#(((///////////////(###((////((/////////#####(/////////////#&&%&&&&&&&&&&&&&&&&&&&&&&&(///////////((((/////*(%##(((((((((((%*       
               .*((/**//////////*/////**/**%#**/*///////////////*(%((((////////////////////////((#####((((((///////////////////(%&&&&&&&&&&&&&&&&&&&&&&&&&#////////////////////*#%#((((((((((((%#,      
             ,,,*////////////////////**/(#/*///////////////////(%##(((//////////////////////////////////////////////////////////#&&&&&&&&&&&&&&&&&&&&&&&&&#///////////////////*/%##((((((((((((%%(,     
             ,*.,,*////////////////**/#(/**//////////////////#%(((##((/*////////////////////////////////////////////////////////(%&&&&&&&&&&&&&&&&&&&&&&&&(///////////////////*#%##((((((((((((%%#(.    
             **.,,,,*///////////////(#(/*//////////////////#//(((((##(////////////////////////////////////////////////////////////(&&&&&&&&&&&&&&&&&&&&&&#//////////////////*,/%###((((((((((((%%##/    
            .%,,,,,,,*///////*////*/(((/*////////////////(,  .(/((((%(//*//////////////////////////////////////////////////////////((#&&&&&&&&&&&&&&&%&&/**//**/*//////////*,*####(((((((((((((%####,   
            (*,,,,,,*(//*/////////*/((((///////////////#,     ,/*((((#(///////////////////////////////////////////////////////***//*//##%&&&&%&&&&&&&&#**/////////////////**/(####(((#(((((((((%####*   
          .#,,,,,,/(((((/*//////*////((((/////////////(        ,**((((#/*/(///*/*///////////////////////////////////////////////*////*/(*/(#&&&&&%&&#**//////////*//////**/(/#%###(###((((((((#%####/.  
         *(.,,,*///*//((((/*///////*/((((((/////////#,          ,*/(((#(/((/*///////////////////////////////////////////////////*////*/(*///**(##%(*/*///////////////*/**((**#%######(((((((((#######/  
        ,*.,*///////**/((((//*////*/*/((((((//////(*            ./*((((##((/*///////////////**//*///*///*///*///*///*///*///*///*////*/(/*//**(#//*/*///////*///*/*/*/*/((*,(%%#####((((((((((##(####/  
       .*,*/*///////////(((((/*//////*/(((((((///(,              ,(*((((##//*/////////////*/////////////////////*///////////////*////*/(/*//*/#(/**////////////////////(//,*%%#####((((((((((((((###/.  
      .***//*/////////*///(((((/**//*/*/(((((((((,                *//((((#(//*/////////////////////////////*////////////////////*////*/(//***/#(/*//////////////////*/(/**,#&%##%#((((((((((((((##%/.   
     .**//////*//////////*/((((((*/*///*/(((((#(                   /,/(((##/*///////////////////////////////////*///////////////*////*/#*///*/((/*////////////////**/(/*/,*&%#%%#(((((((((((((#&%/,.    
    ,**//*///*//////**/*//*//((((#(**///*/#((#.                     /*/(((((////////////////////*////////////////*//////////////*///**/#*///*/#(///////////*////**//(///*,#&%%%#((((((((((#%%(((((*,.   
   ,/////////////////((((((((((((((#(////*/#(                        *(/(#(((//(//////////////////////////////*//*//////////////*////*((*///*(#//////////////*////((/**/**%&&%%#####%%%%#((((((((//,.   
   /(/**/////////((((((((#%%%%%###((#(///*/*#,                        ,((#(((((////////////////////////////////*//*/////////////*////*((*///*((/////////////*//*/((/////*,(#//((/((//(((((((((((///*,,  
  *(/////*//*//*////*///**************//////*/#,                       /#((((((/*//////////*///////////////////*/(/*////////////*///*/(/*/**/#(/*////////*/*//*/((////**/*,(#((((((((((((((((((///*/*,  
 ,(///////////////////////**////*//////////////(*                      /#*(#(/*//***////////////*/////////////*/*/(//*//////////*///*/#/*//*(#(/*//////////////(((((///*//**(#((((((((((((((((/**//***, 
*#///////////////////////////////////////*///(#,                     .((*/((*(%((###((//***/////////////////////*//((/*/////////*///*/#/*//*(#(/*///*/*/##(/*(((((//****/(##((((((((((((((((//*/////**, 
#(/////////////////////////////////////((((((/(.                    .#/**/(/*%#((****///###(**////**//*/*///**/*/**/((//*//*///**///*((**//*(#//*//*/(#(((/**(#(/#%&&&&%%%(((((((((((((((((//*//////**, 
*(////////////////////*/////////////((((((((((///                    ,##(((##*(%%#/***//****//((((/**///////*//**//*/(((/*/*//////***#/*****/#/***(%&&&&&%#%#%&%&%%%%%%%%%(((((((((((((((//*//*/////*/, 
 *////////////////////////////////**////((((((((//,                    .(&&&&&%#((((((/**********//(((((///******/***/((((/******///(%###((///(%&&%&%%%%&%####%&%%%%%%%%%%#(((((((((((((////////////*/* 
  *(/**/////////////////////////////////////(((((//*                    /%%%%%%%%%%&&&&&@@@@@&&&&&&&&%%%%%&&&&&%%#%%&&%#%%%%%#%#((((((####((/,./%%%%%%%%&%####%%%%%%%%%%%&#(((((((((((//////////////*/*