@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##################SSSSSSSSSSSSS%%%%%%%%%%???????******++++;;;;:::::::::,,,,                              
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##################SSSSSSSSSSSSS%%%%%%%%%%???????******+++++;;;;:::::::::,,,                              
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##################SSSSSSSSSSSSSSS%%%%%%%%%????????******++++;;;;;:::::::::,,,,                            
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##################SSSSSSSSSSSSSSS%%%%%%%%%%???????******++++++;;;;::::::::::,,,,                          
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###################SSSSSSSSSSSSSS%%%%%%%%%%????????******+++++;;;;;:::::::::::,,,,                        
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##################SSSSSSSSSSSSSSS%%%%%%%%%%????????******+++++;;;;;::::::::::::,,,,                      
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###################SSSSSSSSSSSSSS%%%%%%%%%%%????????******++++++;;;;;:::::::::::,,,,,                    
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###################SSSSSSSSSSSSSS%%%%%%%%%%%?????????*******+++++;;;;;:::::::::::::,,,,                  
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##################SSSSSSSSSSSSSSS%%%%%%%%%%%?????????******++++++;;;;;;:::::::::::::,,,,                
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###################SSSSSSSSSSSSSSS%%%%%%%%%%%?????????*******++++++;;;;;:::::::::::::::,,,,             
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####################SSSSSSSSSSSSSS%%%%%%%%%%%%?????????********++++++;;;;;:::::::::::::::,,,,,,         
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####################SSSSSSSSSSSSSS%%%%%%%%%%%%??????????*******+++++++;;;;;;:::::::::::::::,,,,,       
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###################SSSSSSSSSSSSSSS%%%%%%%%%%%%%?????????********+++++++;;;;;;;:::::::::::::::,,,,,,   
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###################SSSSSSSSSSSSSSSS%%%%%%%%%%%%%??????????*********+++++++;;;;;;;:::::::::::::::,,,,,,
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####################SSSSSSSSSSSSSSS%%%%%%%%%%%%%%??????????*********++++++++;;;;;;;::::::::::::::::,,
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####################SSSSSSSSSSSSSSSS%%%%%%%%%%%%%???????????*********+++++++++;;;;;;;;::::::::::::::
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#S??S#@@@@#####################SSSSSSSSSSSSSSSS%%%%%%%%%%%%%%????????????**********+++++++++;;;;;;;;;:::::::::
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+,  ,+S@@@@####@@#S%S############SSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%????????????***********++++++++++;;;;;;;;;;::::
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?     :?#@@@##@#%+:,,*##############SSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%??????????????***********++++++++++;;;;;;;;;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+     ,*#@@#@#?:    ;S################SSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%??????????????***********++++++++++++++;;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;     ,*#@@@S;    ,+##################SSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%???????????????*************++++++++++
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:     :?#@@?,    ,*####################SSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%?????????????????******************
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#,     :%@#+     ,?####@#S%*;;?############SSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%%????????????????????***********
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@S      ;%S:     ,?#@@#%*:,  ,+S##############SSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%%%%??????????????????????****
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*      ;+,     ,?@@#*:    ,+%###################SSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%%%%%%%????????????????????
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:      ,      ,?#S+,    ,*S#######################SSSSSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%????????????
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#S%%*             ,+?;     :?#@@#@@@@@####################SSSSSSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?;,  ,              ,,     ,*#@@##S%%????%S####################SSSSSSSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@S                          :?S?+;:,,    ,:*S#######################SSSSSSSSSSSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:                        ,:,      ,:;+?S#@###########################SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%                            :;*%S##@@@@#################################SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*                       ,;?S#@@@@@@@@@@@@@@@#################################SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#,                     ,+#@@@@@@@@@@@@@@@@@@@@@@###################################SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+                      :%@@@@@@@@@@@@@@@@@@@@@@@@@########################################SSSSSSSSSSSSSSSSSSSSSSSSSSSSS
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*                      ,+#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###############################################SSSSSSSSSSSSSSSSSS
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#,                      ;S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##############################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*                      :%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#########################################################
@@@@@@@@@@@@@@@@@@@@@S%?****+,                     +#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@######################################################
@@@@@@@@@@@@@@@@@S*;,                           ,;%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#################################################
@@@@@@@@@@@@@@@S;,                             ,?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###########################################
@@@@@@@@@@@@@%;                                ,:+?#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####################################
@@@@@@@@@@@%:                                     ,;*S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########################
@@@@@@@@@%:                                         ,:?#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@%:                                             ,;?#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@S:                                                ,:*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@