WARDAWG THE FUCKING GOD IN ASCII FORM!!!

WARDAWG IS HERE IN ASCII FORM!!
WARDAWG'S TRUE PERFECT AESTHETIC GOD BODY AND FORM IN ASCII FORM!
EXPERIENCE WARDAWG'S SACREDNESS IN ASCII FORM!!!

                                                                                                                                                      
                                                                                                                                                      
                                                                                                                                                      
                                                                                                                                                      
                                                                                                                                                      
                                                                                                                                                      
                                                                                                                                                      
                                                                                                                                            ..:::::--:
                                                                                                                                ..::-------::.        
                                                                               .-=++=-.                              .::--===---::.                   
                                                                ..:.       :.=+********+.               ..:::-===+=--:..                              
                                                              .:: ..::    +=****+*+++=+**=   ...:---====-::.                                          
                                                              .      .= .+*++********+++**=++=-:..                                                 ...
                                                                     .++**==****************#*+:                     :.               ...::::::::...  
                                                              ..:-==+*************##********++**=.                  ::     ..::-----::..              
                                                    .::. .::-=+*************###########****#*****+=-++++++=-.  ..::=----::..                          
                                         .:-======--::.:-==+*#******#***###############**#####***************+=::.:.                                  
                              .::-=====--:.        ::--++=*##***#####*########################**##************++*+.                                   
                    .:-====--::.               ...---=+++*####*########################################*#*******+*+.                                  
         .::----::::.                       ....:=---=-:*###################################################********+++=====-.                        
:-===--::..                               ....:-=---=--*#######################################################*******+=+=-===+=.                     
..                                  ..  .....:-=--:=-=*#########################################################*****+=--==:+..-=-                    
                        ..:---------: .....:---=--==-+#############################################################*******+++..  :-                   
              .:-------::..         ......:---==--=-=*#####****######################################################*******+-    =.                  
 ..:---------::.                 .......::----=---+--##**####***######################################################********.   :.                  
::..                           .....::::------=---+-=##*##%#*****#####################################################********=   :                   
                            .......-----==----=--==-+###################################################################*******-..                    
                           :.....:--=:----=--=---=-=*####******#########################*****########################*********+=:                     
                          :::...:-==----==-=-====--=##**########%%%%%####%%%%%%%%%%%%%%%%%%########################***********=::.                    
                         -:::.:::===--==---+++--=++*##%%%%%%%#%%###############%%%%%%%%%%%%%%%%%%%##########***###****+*******-:.:.                   
                        -=-:.::----======+*++++**####%###%%#########%%#########%%####%%%%%%%%%%%%%%%%%%%#########******+++****=-.:..                  
                       :-:=.:::----=+++=+**+*##########%%%%#####%%##############%%%##%%%%####%#%%##%#%%%%%%##********###++++*#=:::..                  
                       -::*.:----====+=+*#*###########%%%#####%%%%########*####%%%%%%%%%%#######################********+++*+*=..:...                 
                      .:.:*-:----=+=--*####%%%%%%%%%%%%%######%%%##########**####%%%%%%%%%##%%#%%#################********###++..:....                
                      :::::#=--===--+#####%%%%%%%%%%%%%###*###%%%##########*######%%%%%%%%%%%%%%%%#%%%%#############****+****#+::::....               
                     .:--::-**===-=*####%%%%%%%%%%%%%%%######%%%%####*######***####%%%%%%%%%#%%%%%%%%%%%%##############*++++*#*::.:....               
                     --------+%*=*#%###%#%%%%%%%%%%%%%%%%%###%%%#####****#%##**#####%%%%%%%%##%%%%%%%%%%##################*+***-:.:.. .               
                    :---:--===-*%%#%%%%%%%%%%%%%%%%%%%%%%%%%#%%%####****######***#######%%%%########%%######################***-:.:.. .               
                    =-----====*#####%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%#####%%###########################%%##################*******=-::.. ..              
                   :=-----=-=######%%%%%%%###%%%%%%%%%%%%####%%%%##%%%%%###*########################%%#####%%##########********+=-:.  ..              
                   --------*######%%%%%%%%###%%%%%%%%%%#########%%%%%%######*****####################%###**###############*******+-:. ..              
                   :------*#######%%%%%%%%######%%%%%%###################***##**********##############%%###**###############******+-::..              
                   -=---=########%%%%%%##################################****##***************############****##############*******+==..              
                   -=--=#########%%%%%#############*******###############*****#************************************########**********=:..             
                   -=-=#########%%%%########***###**************##*****#************************+*++++++************######*******####==-.             
                   --=#########%%%%########*********************##******************++++**+++++**+++++++++++++++***+**#####**##**###*++=: . .         
                 ..=*#######%%%%%%#####**##**********************#******************+++**++++++++++++++++++++++++++******######**#**#***=-:..         
                   *########%%%%#####*******************++*++***********************+****++++++++++**+++++++++++++++++*****##****##*###*:.--          
                   ########%#%%####**************+*+++++++++++++************************+++++++++*++++++++++++++++++++++++++****#######**+=:          
                  :*#%#%%%########**************++++++++++++++++**********************+++++++++***+++++++++++++++++++++++===+****#######*+-.          
            .. :*=+####%%%#*****##********#***#***++****++++++++****************+*****++++++*+*******+++++++++++++++++++++===+***########-            
           :=---==:##%%%%%#****##********###*****************************************************+++++++++++++++++++++++++===++*####*****+            
           ==--::..%#%%%%#*****##******####*******************++***************************************+++++++++++++===++=====+*####*##***  ..        
          -=---...=###%%%#*****###**###############******************+***********************************+++++++++++====++====+*###**##**#=-.         
         .====-:.=-###%%%#******#########################**+**************#*******############**************+++++++++=====+====*####*###***++-..      
         ====**=+-:###%%%#***************###################****##*#####%###########################**********+*++++++=========+*###*#####+-.         
     .**++***###**+###%%%****************################%%###*###########################################***********+++========*###*###***=..        
       ++*=***##**###%%%%**************###########%%%%%%%%%%%%#####################%#%%#%%%%%%%%%%%%%%%%%%%%#########***++======+*#######**+:         
       :#++#**=#%##%%%%%%*******#######%%#%%%%%%%%%%%%%%%%%%%%%%%%################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#######*++=====*########***=-:    :-
      .++++##%+####%%%%%#****###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%########%%%###%%%%%%%%%%%%@@@@@%@%%%%%%%%%%%%%%%%%%#%%##***+==+*###########*++*++=:
      -=##**#%#*%%%%%%%%**###%%%%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%##%%%%%%%%%%%%%%%%%%@@@@@@@@@@@%%%%%%%%%%%%%%%%%%#######*==+*##########*+*+==-.
     .=+##*#*##%%%%%%%%%####%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%############***++**#########****+-. 
     -***%*=#%#%#%%%%%%###%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%################***++**#######*###*--. 
    :=#+=-=%%%#%%#%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%############****#**++**#####*#***#*+-:
    ==+%#=+=*%%%%%%%%%###%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@%%%%%%%%%########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%########*****++++*######**=-*##+=
   -===-=+#%%%%%#+%#%%#####%%%%%%%%%%%%%@%%%%@@@@@@@@@@@@@@@@@@@%%%%#####*****####%%%%%%%%%%%%%%%%@%%%%%%%##########%%%%######*****+++++##########*#*=
+#*==+#*#:.:.--+#*%%%%#####%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@%%##*************##%%%%%%%%@%@@@@%%%%%%%%%%%%#####****#%%%######***++++*#############*
 -====*****+--**##%%%#*####%%%%%%%%%%%%%%%%%@%%@@@@@@@@@@@@@@@@@%%#***+++++++++**##%%%%%@@@@@@@@@@@@@@@@@%%%%%%%%%%###**#%%######**++++*############*:
 :=====-=-=-+#%%%%%%#*###%%%%%%#%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@%%#***++++**++++**#%%%%%%%@@@@@@@@@@@@@@@@@%@%%%%%%%%%%##########**+++++*##########***
 ===-=*++*%#%%%%%%%%#####%%%%%%%%%%@@@@@@@@@@@@@@@%%@@@@@@@@@@@@%##**+++++##++++**#%%%%%%%%@@@@@@@%@@@@@@@%%%%%%#%%%%%%%%#######***+++++*########*###*
:=--=:+*%%%%%%%%%%%%#####%%%%%%%%@@%%%%@@@@@@@@@@@@@@@@@@@@@@@@%##****++++++++++**###%%%%%%%%%%%@%@@@@@@@%%%%%%%#%%%%%#%%%%#####***+++++*########*##**
==--:  -%#%%%%%%%%%%#####%%%%%%%%%%@@%%@@@@@@@@@@@@@@@%%%%@%%%%%##****++++++++++***###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###**####*****++++++*####+#####***
=--+***#%%%%%%@%#%%%######%%%%%%%%%%%%%%@%@%%%%%%%%%%%%%%%%%%%%###***++++++++++++***####%%%%%%%%%%%%%%%%%%%%%%%%%%%####***+***++++++++++*#####*######*
=--+=-:#%%%%%@::@%%%##*##########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####***++++++++++++*****#####%%%%%%%%%%%%%%%%%%%%%%#####****+++++++====+++*#######*#####
---.   #%%%%%%=%%%%%#*********#####%%%%%%%%%%%%%%%%%%%%%%%%%####*#**+++++====+++++******#######%%%%%%%%%%%%%%%%%%%###****++++++=======++*###%#%#*####*
---    +%%%%%%%%%%%%#**********###%%%%%%%%%%%%%%%%%%%%%%%%######****++++++====+++++********########%%%%%%%%########*****++*++=========++*##%%%########
--.     %%%%%%%%%%%%#***********#####%%%%%%%%%%%################****+++++=+===++++++***************################***++++*+===========++#%%%########*
--      :%%%%%%%%%%%#**************#############################****++++++++===+++++**********************######*****+++++==============+*#%########*-
-.      : #@%%%%%%%%******************##########################****++++++++==+=++++***##**************************+++++=++=+++++++++++=+*#%####*#*-:-
:       :. =%%%%%%%#**************************###########%%%##*******+++++++====++++***##****************++*+**+++++++++++++++++++++++++++*######+::++
.        :: =%%%%%%#************##************#########%%%%%#********+++++++++++++++**####*************+++++++++++++++++++++++++*+++++++++*######*+-..
          .---=%%%%****##***##########******##########%%%%%#********#******++++=+=++*########***********+++++++********************+++++++*#####*--:.:
             ::*%%#***###################**########%%%%%%%#******+**##*****+++++++++*###%%######*********++*++**+********************+++=++*###**+:.. 
            .  +%%#***############################%%%%@%###******************++++++++**#%%%%#######***********************************+++++*###*+***++
             :.:#%#**#############################%%%%#*******##***************++++++****%%%%###########******************************+++++*###++*####
......       .. +%#**############################%%%%#*******####**************++++++*++++#%%%%##########*****************************+++++*##*=*#####
       ..........##**##########################%%%%%%####***######*#######********+++++++++%%%%%#%#######*##***************************++++###=+*#+==-
                  ***########################%%%%%%%%%%#####################**********++***#%%%%%############***#*********************++++*#%= #######
                   *###########%%%%%####%%%#%%%%%%%%@%%%%###%%%###############***********#*#%%%%%%%%%############*********************++++*#+ :###%%%#
..                 :##########%%%%%%%%%%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%#############*#%%%###%%%%%%%%%%############*********************+++#%+ -##*====
 .::::::::::...     *#########%%%%%%%%%%%%%%%%%%%%%%@%%@@@@@%%%%%%%%%%%%%%%########%@@%%%%#%%%%%%%%%%%%#############******************+++*#=% =#######
            ...:::::*########%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%################***************+++*#=@-+##%%%%#
                    -#######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###############**************+*+*+ *#%%%#####
                     +#%###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%#####%%%%%%%%%%%%%%%#################**######*****+-%- -%*%###   
                    .=##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@@@@@%%%%%%%%%%%%##########%%%%%%%%%%%%%########################******:-@: =%*@%%%   
                     .*#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@%%%%%%%%###%#######%%%%%%%%%%%%%########################*****:+@. +%*:---   
                      -#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@%%%%%%%%%%%%#######%%%%%%%%%%%%%#######################****+:*#  ##%*%%*   
                       *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%@@@@@@@@@@@%%%%%%%%%%%%########%%%%%%%%%%%%%%%%###################*#*=*-#*  ##%*%@+   
                       .#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%@@@@@@%@@@%%%%%%%%%%%#########%%%%%%%%%%%%%%%###################*##+.*+%+.-%#%#==-:..
                        :%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%%%%%%%%%%@@@%%%%%@%%%%%%%%%%#######%##%%%%%%%%%%%%%%%####################**: **%: :%#%%#%-   
....                     +%%%%%%%%%%%%%%%%%%%%%@@%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%#####%#%#%%%%%%%%%%%%%%%#####################-  *#%. -%%%%#@.   
... .                    :#%%%%%%%%%%%%%%%%%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%##############%%%%%%%%%%%%%%%%%%%###################+   +##::=**.-%-    
. -**+*#*=-: ..-:. -*=   :*#%%%%%%%%%%%%%%%%%%%@@@@%%%%%%%%%%%%%%%%%%%%#%%########****######%#%%%%%%%%%%%%%%%%%##################*.  .+###**++++%+:.  
=++*+****#####+++*####+=*###%%%%%%%%%%%%%%%%%%@@@@@%%%%%%%%%%%%%%%%%%%#######%######****#######%%%%%%%%%%%%%%%%%################**%%#%@%%%###**#%##%%*
*********====+***%%%%%%####%%%%%%%%%%%%%%%%%%@%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#############%%%%%%%%%%%%%%%%#################*+*%%%%%%%%%%+. %:  =
*#####%#+*#***#%##%%%@@%%%@@%%%%%%%%%%%%%%%@@%@@@@@@%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%########%%%%%%%%%%%%%%%%###################*+#%@%%%%%%%#=##   
###%%%#**#%%#####%%@@@@@@@@%%%%%%%%%%%%%%%%@@@@@@@@@%%@@@@@@@@@@%@@%@@@@@@@@%%%%%%%%%%%%%%%#####%%%%%%%%%%%%%%%%%###############%###**#%@@%%%%%%%#%#**
%%%%%#**##%%####%@@@@@@@@@%%%@%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%@@%%%%%@@@@@@@@%%%%%##%%%%%%%%%%%%%%%%%##%#####%####**##%###***#%@@%%%%%%%#**
@@@%%#*###%%###%@@@@@@@@@@@@@@%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%@%%%%%%%%%%##############+*#%%###***##%@@@@%%%%##
%%@%#*###%%###%%@@@@@@@@@@@@@@@%%%%%%%%@%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%##%#####%###@@#+*#%%%###***##%@@@@%@#%
%%%###%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%%%@@@@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%##########@@%***#%%%####**###%@@@@%#
%%##%%%%%%%%%%@@@@@@@@@@@@@@@@@@@%%%%%@@@@%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%#%#####%###%@@%***#%%%%###**###*#@@@#
%%#%%%%%%%@%%@@@@@@@@@@@@@@@@@@@@%%%%@@@@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%@@%%%%%%%%%%%%%%%#%%######%@@@#***%%%######**###*#@%
%%#%%@@@%%%%%@@@@@@@@@@@@@@@@@@@@@%%%@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%@%%%%%%%%%%%%%%%%########%%@@%***#%%%######**####*%
%#%%@@@%%%%%@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%#####%#*###%@@@#***%%%%######**#####
%%%@@@%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%#%#%%######%@@@%##*#%%%%###*##**####
%@@@@%%@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%######%%@@%###*#%%%%######**###
%@@@%%@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%#%%%#%%#######%%@@@#####%%%%%%##*###*##
@@@%%@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@%@@@@%%%%%%%%%%%%%%%%%%%%%#%%%%%%##***###%@@@%####%%%%%%%#**###*#
@@%%@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%#%%%%%##******##%%@@%#####%%%%%%%#*####*
%%%@@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%@%%%@@@%@@@@@@@%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%#*******##%%@@%#####%%%%%%%%#*####
%%@@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%####%###%%%%@%@%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%#********###%@@@#####%%%%%%%%%#*###
%@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#*********###%%@@######%%%%%%%%%#*##
@%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%**********###%%@@%#####%#%%%%%%%%#*#
@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%###%%%%%####%%#%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%************##%%@@%#####%%#%%%%%%%%**
%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%####%#%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#***********###%%@@%#####%%##%%%%%%%%*
%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*************###%%@@%######%#*%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%#*************###%%@@%######%#*##%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@@@%%%@%%%%%%%%%%%%%%%%%%%%%%%%%#**************###%%@@%#%####%#####%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%****************###%%%@%%#####%%##%#%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%*****************###%%%%%#%####%%###%#%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%@@@%%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%@%%#******************###%%@%#%#####%%%##%%#%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%#*******************###%%@%######%%%%###%%%#%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#********************###%%%%%#####%%%%###%%%%%%
@@@@@@@@@@@@@@%@@@@@@@@@@@@@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%#*********************###%%%%######%%%%%###%%%%%
@@@@@@@@@@@@%%%@@@@@@@@@@@@@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%#***********************##%%%%%######%%%%%%#*#%%%%
@@@@@@@@@@@@%%@@@@@@@@@@@@@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%#***********+++**********##%%%%%%#####%%%@%%###%%%%
@@@@@@@@@@@%%@@@@@@@@@@@@@@@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%%##**************+*********###%%%%%%####%%%%@%%%#*##%%
@@@@@@@@@@@%%@@@@@@@@@@@@@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%@@@@@%%###************************###%%%%##%%##%%%%@@%%%#*#%%
@@@@@@@@@@%%%@@@@@@@@@@@@@@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@%%####*************************###%%%%%%%##%%%%%@@@%%#*#%#
@@@@@@@@@@@@@%%@@@@@@@@@@@@@@%@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%######***********++************##%%%%%%%%%#%%%%%@@@@%##*#%
@@@%@@@@@%%%@@@%@@@@@@@@@@@@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#########*************+**********###%%%%%%%%%%%%%%%@@@@%%#*##
@@%%%%%%@%%%%%%@@%@@@@@@@@%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%########***************++********###%%%#%#%%%%%%%%%%%@@@@%##*#
@%%%@@%%@%%%@%%%%%@@@%@@%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%##########****#********************##%%%%%%#%%%%%%%%%%@@@@%%%##*
%%%%%%%%%%%%%%%%%@@@@%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%##########**************************###%%%%%#%%%%%%%%#%%%@@@@%%%#*
%%%%%%%%%%%%%%%@@@%%%%%%%%%@%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%#############**********#****************###%%%%%%%%%%%%%%%#%%%@@@@@%%#*
%%%%%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%###############***###******#*************#####%%%%%%%%%%%%%%%%%#%@@@@@@@%%#
%%%%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@%################**##**#*****#####**********#####%%%%%%%%%%%%%@%%%%#%%@@@@@@%%#
%%%%%%%%%%%%%%@@@%%%%%%%%%%%%@%%%%%%@@@@@@@@@@@@@@@@%%%%%@@@@@@@@@@@@@@@%####*****#******##***#****##*###**********####%%%%%%%%%%%%%%%%%%%#%%@@@@@@%%%
%%%%%%%%%%%%%%@@%%%%%%%%@%%%%%%@%%%%@@@@@@@@@@@@@@@@%%%%%%%@@@@@@@@@@@@@@@%%#***************#*****#*##**#********#####%%%%%%%%%%%%%@%%%%%%#%%@@@@@@@%%
                            
========================================================================================-=----------------::.:...............:::::::::::::::::::::::::
========================================================================================-=----------------:..................:::::::::::::::::::::::::
========================================================================================-=------------=--:::..:..............:::::::::::::::::::::::::
==========================================================================================--------==--=--:::..::.............:::::::::::::::::::::::::
=======================================================================================--------------==-:::::.::............::::::::::::::::::::::::::
======================================================================================--------------==-:::::::...........:::::::::::::::::::::::::::::
=======================================================================================------------==--:::::::.:.........:.:::::::::::::::::::::::::::
=======================================================================================------------==-::::::::.:.........:::::::::::::::::::::::::::::
=======================================================================================--------------:::::::::.:.:::::::.:::::::::::::::::::::::::::::
=========================================================================================------------::::.::::.:.:::::::.:::::::::::::::::::::::::::::
========================================================================================-=----------::::..::::...:::::::::::::::::::::::::::::::::::::
========================================================================================-=-=--==---::::::.::::::.:::::::::::::::::::::::::::::::::::::
========================================================================================-=-=--==--::::::::::::::::::::::::::::::::::::::::::::::::::::
=========================================================================================---====--::::::::::::::::::::::::::::::::::::::::::::::::::::
=========================================================================================-=-===--:::::::::::::::::::::::::::::::::::::::::::::::::::::
===============================================================================================-::::::::::::::::::::::::::::::::::::::::::::::::::::::
::----======================================================================================-==-::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::-----===============================================================================-:::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::-----=======================================================================--:::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::-----===================================-================++**+==-==-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::----======================================++=====+#####*====-:--:::::.::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::-------==============================**#****##%%###*+====+**=-::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::---======================+++*#%%##%%%%%%%###*++#%%%%*-.:::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::-----==============**##%%%%%%@@%%%%%%%#**%@@%%%=::.:::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----=-====+%%%%%%%%%%@@%%%%%%%%%%%@%%%@%%*::==:.::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-=+####%%%%%%%%@@@%%@@%%%%%@@@%%@%%##%%+-=++::::::.:::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::==*###%%%%%%%%%%@@%%%%%%%%%%%%%@@@@@@@%%%*+*%%%*-:::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::=+***###%%%%%%%%%%@@@@@%%@%%%@@@@@@@@@@@%%%#%%%#%%+::::::::::.::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::-+##*+*%%%%%@%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%#+++::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::=*###++%@%@@@@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%@%%#**=-::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::-*##%%**%%%@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@%%+**=:::.::::::::::::::::::::::::::::::::
:.::::::::::::::::::::::::::::::::::::::::::::::::::::::=###%%##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%#%%+-::..:::::::::::::::::::::::::::::::
:::.:::::::::::::::::::::::::::::::::::::::::::::::::::-+#+*%%%%@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%#=--..:::::::::::::::::::::::::::::::
-------:::..::::::::::::::::.::::::::::::::::::::::::---*##%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*=-::::::.::::::::::::::::::::::::::
--------===----::::::::::.::::::::::::::::::::::::::--++%%%%#%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#+=-::::::.:::::::::::::::::::::::::
:::::----------===---::::::::::::::::::::::::::::::---+*%%%%#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%#+-:::::.:::::::::::::::::::::::::
======---:-----------==------::::::::::::::::::::::-=**###%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@#=:..::::::::::::::::::::::::::::
:::---========--------------=--------::::::::::::::-+%#%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@%#+=:::::::::::::::::::::::::::::
----::::::----=========----------=======--------:::-+##%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%@@@#=::::::::::::::::::::::::::::
-----------::--------====++====-------------====----*#%%%@%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@%#=.:::::::::::::::::::::::::::
::::::::::--------::::::-----=====+++====--==++====+#%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@#+-::::::::::::::::::::::::::::
:::::::::::::-------------:::::-----===+++=-:--=-=*#%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@%*-::::::::::::::::::::::::::::
::::::::::::::::::------------=++=----:----::::::+%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@%%@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@%*-:.:.:::::::::::::::::::::::
::::::::::::::::-::::::--::--:--=----------:::::-+**%%@@@@@@%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#=-:::::::::::::::::::::::::
::::::::::::::::::::------:------::------==:::::-++*%%@@@@@@@@@@@@@@@@@@@@@@%%%#########%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%+-::.::::::::::::::::::::::
:::::::::::::::::::::::--:::---------:---==:::::-+*#%@@@@@@@@@@@@@@@@@@@@@@%%##############%%%%%%%%@@@@@@@@@@@@@@@@@@@@%%@%#**+-::::::::::::::::::::::
:::::::::::::::::::::::::::--::---:------==:::-=*#%@%@@@@@@@@@@@@@@@@@@@@@%%%##****#***########%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@%%*:::..:::::::::::::::::
:::::::::::::::::::::::::::-::----:------=-:-=*#++%@%@@@@@@@@@@@@@@@@@@@@%%%##***********#############%%%%%%@@@@@@@@@@@@@@@@@%#*=-::::::::::::::::::::
:::::::::::::::::::::::::::-::-----------=-:=+*%*+#%%%@@@@@@@@@@@@@@@@@%%%###*************############%%%%%%%@@@@@@@@@@%@@@@@@#*+-::::::::::::::::::::
:::::::::::::::::::::::::::-::---:------=+-:--=%%#%@@@@@@@@@@@@@@@@@@@%%%###**************##############%%%%%%@@@@@@@@@@@@@@@@%#+-.::.::::::::::::::::
:::::::::::::::::::::::::::-::---::------=--=++*%%%@@@@@@@@@@@@@@@@@@%%%###****************#################%%%%%@@@@@@@@@@@@@@%#-.:::::::::::::::::::
:::::::::::::::::::::::::::-::---::::--:-=--=++#%%%@@@@@@@@@@@@@@%%%%%%%###*******************###############%%%%%@@@@@@@@@@@@@@%#=:::::::::::::::::::
:::::::::::::::::::::::::::-::---:::-:---=::::-+#%%%%@@@@@@@@@@%%%%%%%######********************##############%%%%%@@@@@@@@@@@@@@%#=:.::::::::::::::::
:::::::::::::::::::::::::::-::---::::----=:::-=+#%%@@@@@@@@@@@%%%############***********************###########%%%%@@@@@@@@@@@@@@%%#+-::::::::::::::::
::::::::::::::::::::::::::::::--:::::-:---::-=*##%%@@@@@@@@@@%%%############**************************###########%%%@@@@@@@@@@@@@@@@%*-:::::::::::::::
:::::::::::::::::::::::::::::---::::--:-=---=###%%%@@@@@@@@@%%%#########*******************************#########%%%%%@@@@@@@@@@@@%@@@%*-.:::::::::::::
:::::::::::::::::::::::::::::---::::--:-=--=*###%%%@@@@@@@@@%%%######**********************************######%%%%%%%@@@@@@@@@@@@@@@@@@%+:.::::::::::::
:::::::::::::::::::::::::::::---::::--:-=--*%##%%%%@@@@@@@@@%%######*********************************######%%%%##%%%@@@@@@@@@@@@@%@@@@@@+:::::::::::::
:::::::::::::::::::::::::::::---::::--:-=-=%%#%%%%%@@@@@@@@%%%######******************************####%%%%%%%%%%%%%%@@@@@@@@@@@@@%@@@@%@@=::::::::::::
:::::::::::::::::::::::::::::---::::--:-=-=%%#%%%%%@@@@@@@@%%%######***************************####%%%@@@@@@@@@%%%%%%@@@@@@@@@@@@@%@@@@%@*::::::::::::
:::::::::::::::::::::::::::::---:::::-:-=--#%%%%%%%%@@@@@@@%%#######*###**********************##%%%@@@@@@@@@@@@@@@%%%%@@@@@@@@@@@@@@@@@@@%::::::::::::
:::::::::::::::::::::::::::::---::::----=--*%%%%%%%@@@@@@@@%%#####################***********##%%@@@@@@@%%%%%%%%@@@%%%%@@@@@@@@@@@@@@@@@@@::::::::::::
:::::::::::::::::::::::::::::---::::-:-==::+%%%%%%@@@@@@@@@%%##########%%%%%%%%%%%#**********##%%@@@@%%%######%%%@@@%%%@@@@@@@@@@@@@@@@@@@-:::::::::::
:::::::::::::::::::::::::::::---::::::---::=#@%%%%@@@@@@@@@%%######%%%%%@@@@@@@@%%##*********##%%@%%%%#########%%%%@%%%@@@@@@@@@@@@@@@@@@@=.::::::::::
:::::::::::::::::::::::::::::---:::--:-=-::-*@%%@@@@@@@@@@%%#####%%@@@@@@@@@@@@@@%%##*******##%%%%%###########%%%%%%%%%@@@@@@@@@@@@@@@@@@@*.::::::::::
:::::::::::::::::::::::::::::---:-:----=-:::+%%%@@@@@@@@@@%%####%%@@@%%%@%@@%@@@@@%###******##%%%%%#####%%##%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@#.::::::::::
:::::::::::::::::::::::::::::---::::-:---::-+#%%@@@@@@@@@%%####%%@@%%%%%%%%%%%%%%%%%##******##%%%%%%%#######%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@%:::::::::::
:::::::::::::::::::::::::::::---::::-:---::-++*%%@@@@@@@@%###%%%%%%%%###########%%%%##******##%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@%:::::::::::
::::::::::::::::::::::::::::----:-:-----:::=+=+%%@@@@@@@@%###%%%%%%%#%%#%###%%%%%%%%##******##%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@-::::::::::
:::::::::::::::::::::::::::---:::-::----:::-++*%%@@@@@@@@%##%%@%%%%%%%##%%%%%%%%%%%%%##****###%%%%%%%%%%@@@@@%%%%%%%###%%%@@@@@@@@@@@@@@@@@=.:::::::::
:::::::::::::::::::::::::::----::-::-----::-+*#%%@@@@@@@%%##%%%%%%%%%%#%%%%%%%%%%%%%%##****###%%%%%%%%%@@@@%%%%%%%%%###%%%@@@@@@@@@@@@@@@@@=::::::::::
:::::::::::::::::::::::::::----::::-----:::-*#%%%@@@@@@@%%##%%%%%%%%%%%@@%%@%%%%%%%%%##****###%%%%%%%%%@@@@%#%%@@%%%####%%@@@@@@@@@@@@@@@@@+::::::::::
:::::::::::::::::::::::::::----:-::-----:::-*#%%%@@@@@@@%%###%%%%%%%%%@@@%%%%%%%%%%%%##****###%%%%%%%%%%@@%%#%%@%%%%#####%@@@@@@@@@@@@@@@@@+::::::::::
::::::::::::::::::::::::::-----:-:------:::-=#%@@@@@@@@@%####%%%%%%@@%%@@%@@####%%%%%##***####%%%%##%%%%%@%%%%%%%%%%#####%%@@@@@@@@@@@@@@@@*::::::::::
::::::::::::::::::::::::::-------:----=-:::-+#%@@@@@@@@@%#####%%%%%@@%%%@@@@####%%%%####*#####%%%%##%%%%%%%%%%%%%%%######%%@@@@@@@@@@@@@@@@*::::::::::
::::::::::::::::::::::::::-------:--:-=-:::=#@%@@@@@@@@@%######%%%%%%%%%%%%##%%%%%%%###*######%%%%%%##%%%%%%%%%%%%%######%%@@@@@@@@@@@@@@@@*::::::::::
:::::::::::::::::::::::::-::--------:-=::::+#%@@@@@@@@@%%#######%%%%%%%%%%%%%%%#########**################%%%%%%%########%%@@@@@@@@@@@@@@@@#::::::::::
:::::::::::::::::::::::::-----------:-=::::+#%%@@@@@@@@%%########%%%%%%%%%%%%%#################################%%########%%@@@@@@@@@@@@@@@@#::::::::::
:::::::::::::::::::::::::-----::----:-=::::=*%%@@@@@@@@@%##########%#%%%%%%%#############################################%%@@@@@@@@@@@@@@@@#::::::::::
::::::::::::::::::::::::------:-----:--::::-+%%%%@@@@@@@%##################################*#############################%%%@@@@@@@@@@@@@@@#::::::::::
::::::::::::::::::::::------------:----:::::=#%%%@@@@@@@%##################################*#############################%%%@@@@@@@@@@@@@@@#::::::::::
:::::::::::::::::::::::----------::----:::::=*%%%@@@@@@@%####################**#######*###***####%####**#################%%%@@@@@@@@@@@@@@@#::::::::::
::::::::::::::::::::::-------=---::----::::::=*%%@@@@@@@%#######***#######******#####**###***####%###***#################%%%@@@@@@@@@@@@@@@%::::::::::
:::::::::::::::::-:::---::----::-----=::::::---*#@@@@@@@%#####*******###*****##**###*###******###%##*******##############%%%%@@@@@@@@@@@@@@#::::::::::
::::::::::::::::::::----::-----------=::::::--=*#%%@@@@@%#####*******####********###*##*******#######*****###############%%%%@@@@@@@@@@@@@@+::::::::::
-:::::::::---------::::-----::::-----=:::::::-+*#%#%%%@@%#####*******###********##%#####**#**#####%###******##############%%%@@@@@@@@@@@@@%-::::::::::
***+++++++*******++==---:------------=:::::::-**#%%%#%@@%#####*******###*******###%%%%#########%%%%%##******##############%%%@@@@@@@@@@@@@*:::::::::::
%%%%%%%%%%%%%%%%%%%%##*++---------:---:::::::-**##%%%@@%%#####*******##********##%%%@@%%#####%%%%@%%##*******#############%%%@@@@@@@@@@@@%-:::::::::::
%%%%%%%%%%%%%%%%%%%%%%%%%#+=------:-=-:::::::-+%#+#%@@@%%#####*******##********##%%%@@@%%%%%%%%@@%%%%#*******#############%%%@@@@@@@@@@@%*::::::::::::
%%%%%%%%%%%%%%%%%%%%%%%%%%%*=::---:-=-::::--::=%@##@@%@%%#####*******##********#%%%%@@@%%%%%%@@@%%%%%##******#############%%%@@@@@@@@@@@#-:::--:::::::
%%%%%%%%%%%%%%%%%%%%%%%%%%%%#=::----=-::::::::=%%#####%@%######****######******##%%%%%%%%%%%%%%%%%%%%##******##############%%@@@@@@@@@@%+:::::::::::::
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*-:----=-::=**+=+*@%=-=*#%@%######***#######*******##%%%%%%%%%%%%%%%%%%###*****#############%%%%@@%%%@@@%%*-:-::-::::::::
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+-----=-:-*@@@%%@@@*==+#%%%####*############******##%%%%%%%####%%%%%%####******############%%%%@@@@@@%@%+-::-::-::::::::
%%%%%%%%%%%%%%%%%%%%%%%%%@@%%%#*----=--+@@@@@@%@@%%##%%%%#################******###%%%%%%####%%%%%%####*****##############%%%%@@@%@@#=:::--:::::::::::
%%%%%%%%%%%%%%%%%%%%%%%%%%@@%%%#=--==:=#@@@%@@@%%%@@@@%%%#################******###%%%%%%####%%%%%%######################%%%%@@@@@%+-:::::::-:::::::::
%%%%%%%%%%%%%%%%%%%%%%@@@%%@@%%%*=--=-*@@%%@@@@@%%%%@@%%%%#################****###%%%%%%%####%%%%%%%%###################%%%%%@%#**+-::::::::---:::::::
%%%%%%%%%%%%%%%%%%%%%@@@@@%@%%%%%+-:=*%@%@@%%%%@%%%%%@%%@%#################****###%%%%%%######%%%%%%%%##################%%%%%%*=---:::::::::::::::::::
%%%@%%%%%%%%%%%%%%@@@@@@@@%%%@@%%+-+#%%%%%%%%%%%%%%%%@%%@%%######################%%%%%%####%%###%%%%%%%##############%%%%%%%@#=----:::::::::::::::::::
%%%%%%%%%%%%%%%%%@@@@@@@@@@@@%%##**###%%%%%%%%%%%%%%@@%%@@%%####################%%%%%#############%%%%%##############%%%%%%%@*=----:::::::::::::::::::
@@@@@%%%%%%%%%%%%@@@@@@@@@@@%######%%#%%%%%%%%%%%%%%@@%%@@%%###################%%%%%###############%%%%%%%%#%########%%%%%%%@*=----::::::::::::-::::::
@@@@@@@@@@%%%%%%%@@@@@@@@@%###%%%%%%@@%%%%%%%%%%%%%%%@%%@@%%#################%%%%%%%########%%%%%%%%%%%%%%%%%#######%%%%%%%%%*=----::::::::::::-------
@@@@@@@@@@@%%%%%%@@@@@@@@%%#%%%@%@@%%%@%%%%%%%%%%%%%@@@@@@%%%%###############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%########%%%%%%%%%#+----:::::::::::--------
@@@@@@@@@@@@@@%%%%@@@@@@@%%%%%%@%%%%%%%%%%%%%%%%%%%%%%@@@@%%%%###########%%%%%%%%%%%%%%%%%%%%%@@@@@%%%%%%%%%%#####%%%%%%%%%%%#+----::::::::::::-------
@@@@@@@@@@@@@@%%%@@@@@@@@%%%%%%%%%%@@@%%%%%%%%%%%%%%%%@@@@%%%%%%########%%%%%%%%%%%%%%%@%%%%%%%%@@@@%%%%%%%%%%%###%%%%%%%%%%%#+----:::::::::::--------
@@@@@@@@@@%%%%%%%@@@@@@%%%%%%@%%@@@@@@@@@@@@@@%%%%%%@%@@@@%%%%%%%%#######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%%%%%%%%%*+=---:::-::::::::-------
@@@@@@@@%%%%%%%%%%@@@@@%%%%%%@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@%%%%%%%%######%%%%%%%%%%%%%%%%%%###%%%%%%%%%%%%%%%%%##%%%%%%%%%%%%#+=---:::-:::::::::::::::
@@@@@@@%%%%%%%%%%%@@@@%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%###%##%%%%%%%%%%############%%%%%%%%%%%%%%%%##%%%%%%%%%%%%#+----:::--:::::::-------
@@@@@@%%%%%%%%%%%%%@@@@%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%##%%%%%%%%%%#########%%%%%%%%%%%%%%%%%%%%%#%%%%%%%%%%@%#=----:::--:::::::-------
@@@@@%%%%%%%%%%%%%%@@@@%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%*=-----------------------
@@@@%%%%%%%%%%%%%%%%@@@%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%#+------------------------
@@@%%%%%%%%%%%%%%%%%@@@%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%@%*=------------------------
@@%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%@@%+=--------:---------------
%%%%%%%%%%%%%%%%%%%%%%%@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%@@@%=-----:::----::-----------
%%%%%%%%%%%%%%%%%%%%%%%@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%@@@%+--:----------:---:-------
%%%%%%%%%%%%%%%%%%%%%%%@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%@@@@%*=--:::--::--:::::--------
%%%%%%%%%%%%%%%%%%%%%%@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@%#++*#*+=------:------------
%%%%%%%%%@%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@%%##%@@@@%%@@%*-:-::--------
%%%%%%%@@@@%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@%%%%%%%%%%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%@@@@%@@@@@@@@%%%###@@@@@@@@@*+===--------
%%%%%%%@@@@@@%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#%@@@%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@%%%##%%@@@@@@@@@%%@%*-------
%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%+#%@@@%%@@%%%%%%%%%%%%%%%%%%%###%%%%%@@@@@@%%%%%@@@@@@@@@@@@@@%%%%%%#%@@@@@@@@@@@@%+=-----
%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@#+*%@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%@@@@@%%%%@@@@@@@@@@@@@@@%%%%%%%%@@@@@@@@@@@@@#*+====
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*+*%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%@@@@@@@@@@@@@%#****+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%=+*%%@@@@@@@@@@@@@@@@%%%%@@@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%@@@@@@@@@@@@@#####*
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*=+*#%@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%@@@@@@@@@@@@@%####*
@@@@@@@@@@@%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+=++*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%#%@@@@@@@@@@@@@%##*##
%%%@@@@@@@%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#=++++#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%#%@@@@@@@@@@@@@@##*##
%%%%%%@@%%#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+==+++*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%#%@@@@@@@@@@@@@%###*
%%%%%%@@%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*++++++**#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%##%@@@@@@@@@@@@@%####
%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#=+++++***#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%###%@@@@@@@@@@@@@%%###
%%%%%%%%%#%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*=++++****#%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%####%@@@@@@@@@@@@@@%###
%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%+=++++****##%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%######%@@@@@@@@@@@@@%###
%%%%%%%%%%%%%@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#++++++***###%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%######%@@@@@@@@@@@@@@###
%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+++++*****##%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%######%@@@@@@@@@@@@@@###
%%%%%%%%%%%%%%%%@%@@#@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*+++******###%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%########@@@@@@@@@@@@@@@#*
%%%%%%%%%%%%@@@%@@#+-*@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*+++******###%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%########@@@@@@@@@@@@@@@##
%%%%%%%%%%%@@%@@%*=--+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*++*******###%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%########@@@@@@@@@@@@@@@%#
%%%%%%%%%%%%@@%#+=----%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*++******###%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%#########%@@@@@@@@@@@@@@%#
%%%%%%%%%%%%@%*=------+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*+******####%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%#########%@@@@@@@@@@@@@@%#
%%%%%%%%%%%%#+=--------#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*+******####%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%##########%@@@@@@@@@@@@@@@#
%%%%%%%%%%%#+--------==+#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*******#####%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%##########%@@@@@@@@@@@@@@@#
%%%%%%%%%%*=------=======#%@@%@@@@@%%@@@@@@@@@@@@@@@@@#*******####%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%############%@@@@@@@@@@@@@@@@
%%%%%%%@%*==---==========+#%@@@@@@@@%@@@@@@@@@@@@@@@@@#*******####%%%%%%@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%############%@@@@@@@@@@@@@@@@
%%%%%%%#+=-----==========++*%@@@@@@@@@@@@@@@@@@@@@@@@@#*******####%%%%%%@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%############%@@@@@@@@@@@@@@@@
%%%%%%#=---==----=======++=+*#%@@@@@@@@@@@@@@@@@@@@@@@#*******####%%%%%%%@%%%@@%@%@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%#############%@@@@@@@@@@@@@@@@
%%%%%*=--=--=--=-======+++++++*%@@@@@@@@@@@@@@@@@@@@@@#*****#######%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%##############@@@@@@@@@@@@@@@@
%%%#*=---=---=========++++++****%@@@@@@@@@@@@@@@@@@@@@#*****#######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%################@@@@@@@@@@@@@@@@
%%%*=-------==========++++++++**#@@@%@@@@@@@@@@@@@@@@@#*****#######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#################%@@@@@@@@@@@@@@@
%#+=------===========++++++++***#@@%##%%%@@@@@@@@@@@@@#*******######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#################%@@@@@@@@@@@@@@@
#+=------===========+++++++++***#@@#**##%@@@@@@@@@@@@@%*******########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%#################%@@@@@@@@@@@@@@@
+------=-===========+++++++++****%%#***#%@@@@@@@@@@@@@%*******########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%#################%@@@@@@@@@@@@@@@
                            
########%%##%%#%%%###%@@@@@@%%#%%#%%%@%#+*::==:.           ...........................................................................................
###%%%#%%%%%%%%%%%%%%@@@@@@@%%%@@%@@@@@%*#**+-++..          ..........................................................................................
%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@#@@@*:+#-:           .........................................................................................
%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@#::+*=:            .......................................................................................
%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*=+*##+-            ......................................................................................
%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%##*+.           ......................................................................................
%%%%%%%%%%%%%%@@@@%%@@@@%@@@@@@@@@@@@@@@@@@@@@@@%#**=-:.        ......................................................................................
%%%%#%%%%%%%%%%@@@%#%@@@%@@@@@@@@@@@@@%%@@@@@@%%%%%%@@%+:::.   .......................................................................................
%%%%#%%%%%%%%%@%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%###*=.   .....................................................................................
%%%%%%%%%%%%%@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%=.    ...................................................................................
%%%%%@%%%@@@@%@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%=     ..................................................................................
%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#%#.   ...................................................................................
%%%%%%@@@@@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###*.   ..................................................................................
%%%%%@@@@@@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#%@+.   .................................................................................
%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%=   .................................................................................
+**#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#=.  ................................................................................
=++#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+:  ...............................................................................
++#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+:................................................................................
%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%+::..............................................................................
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#-:..............................................................................
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#==:.............................................................................
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+*-. ...........................................................................
%@@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%###-  ...........................................................................
%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@#-............................................................................
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%####%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*=-...........................................................................
#@@@@@@@@@@@@@@@@@@@@@@@%%%%##%#*******##%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@++*. .........................................................................
%@@@@@@@@@@@@@@@@@@@@@@%#######**+++++***#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+...........................................................................
@@@@@@@@@@@@@@@@@@@@@@%#*******+++++++++**%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-..........................................................................
@@@@@@@@@@@@@@@@@@@@@%#*****+++++++++++++*#%%%%@@%%%%%@@@@@@@@@@@@@@@@@@@@#-..........................................................................
@@@@@@@@@@@@@@@@@@@@%#***+*+++++++++++++++**#%###**##%%%@@@@@@@@@@@@@@@@@#=:..........................................................................
@@@@@@@@@@@@@@@@@@@@#**+++++++++++++++++++++++*******###@@@@@@@@@@@@@@@@#+-:..........................................................................
@@@@@@@@@@@@@@@@@@@%#**+++++++++++++++++++++++++++****##%%@@@@@@@@@@@@@@%*=...........................................................................
@@@@@@@@@@@@@@@@@@%#***+++++++++++++=++++++++++++++****###@@@@@@@@@@@@@@@#-...........::::............................................................
@@@@@@@@@@@@@@@@%##***+++++++++++++++++++++++++++++******#%@@@@@@@@@@@@@%= .........:.::::............................................................
@@@@@@@@@@@@@@@%##***++++++++++++++++++++++++++++++*****##%%@@@@@@@@@@@@@*. ........:.::::............................................................
@@@@@@@@@@@@@%%##****++++++++++++++=+++++++++++++++******##%%@@@@@@@@@@@@%+. ..........::.:...........................................................
@@@@@@@@@@@@%%##****+++++++++++++++++++++++++++++++*******##%%@@@@@@@@@@@%#:  .........::.:...........................................................
@@@@@@@@@@@%%##****++++*+++++++++++++++++++++++++++********##%%@@@@@@@@@@@@*:...........:.:...........................................................
@@@@@@@@@@@%##****+++++*++++++++++++++++++++++++++*********###%@@@@@@@@@@@@%#=............:...........................................................
@@@@@@@@@@@%##****++++**++++++++++++++++++++++++++**********##%%@@@@@@@@@@@@@%=:......................................................................
#@@@@@@@@@%%##***++++++++++++*++++++++++++++++++++**********###%@@@@@@@@@%@@@@@*-.........::..........................................................
#@@@@@@@@@%%#****++++++++++++*+++++++++++++++++++++*********###%@@@@@@@@@@%@@@@@#=....................................................................
#@@@@@@@@@%%#**++++++++++++++*++++++++++++++++++++++++*****####%@@@@@@@@@%#@@@@@@#-:..........:.......................................................
#@@@@@@@@@%#***+++++++++++++++++++++++++++++++++++++++******###%%@@@@@@@@%#@@@@@@@#-..................................................................
#@@@@@@@@@##**++++++++++++++++++++++++++++++++++++++++******####%@@@@@@@@%*@@@@@@@@=..................................................................
#@@@@@@@@%#**++++++++++++++++=+++++++++++++==+===+++++**########%%@@@@@@@%*@@@@@@@@+..........:.......................................................
#@@@@@@@@%***++++++++++++++======+++++++=========++++***#%%%%####%%@@@@@@%*@@@@@@@@+:........::.......::..............................................
#%@@@@@@%#**+++++****++++++==================+++++**####%@@@@%####%@@@@@@%*@@@@@@@@+:.................................................................
*%@@@@@@%**+++*+**###***+*++=====------===-=++****#%@@@@@@@@@@%####%@@@@@%*@@@@@@@@+:.............:::.................................................
*#@@@@@@#*+++***#%@@@@%%%%##**+++=-----====+**#%@@@@@@@@@@@@@@@@%##%@@@@@#*@@@@@@@@+. ........:....:..................................................
+#%%@@@@#*++*#%%@@@@@@@@@@@@%%%#*+===-=====+*#%@@@@@@@%%#%%%%@@@@###@@@@@#*@@@@@@@@=. .........:......................................................
+*%%@@@@*+++#%@@@@@@@@@@@@@@@@@%#*+=======+**%@@@@@%%##*****#%%@@%##@@@@@#*@@@@@@@@+:..:..............................................................
+*%%@@@%*++*%@@%%###***##%%@@@@@%*++====++++*#%%%#***++******##%%###%@@@@#*%@@@@@@@#+====--::.........................................................
+*%%@@@#*++*%%%#***++******###%@%**++==++++*####******##%%%%########%@@@@#*@@@@@@@@@%%%%%%%%%#*-......................................................
+*%%@@@#+++*###*****###***######%#*++=++++**###***##%%%@@@@@%#######%@@@@#*@@@@@@@@@@@@@@@@@@@%*=.....................................................
**#%%@@#++++*****#%@%%%%@@@@%#####**+++++**#%######%@@@@@@@@@%#**###%@@@@#*@@@@@@@@@%@@@@@@@@@@@%-................:....::::.......::..................
*+#%%@@#*+++***##%@@%##@@@@@%%%###***++++*#%%%####==*#%@@@@@@@%#*###%@@@%#*@@@@@@@@%%%%%@@@@@@@@@#-..   ................:.............................
*+*%%@@#*++++**#%@@%+=*%%%@@%%%%###*+++++*#%@%%%%%*+#%@@@@@@@@%##*##%@@@%#*@@@@@@@@@%%%%@@@@@@@@@@%##*+-:.  ............:::::::::::::::.:.............
#++%%@@#*++++**#%@@%*+*%%%@@%#%%%%#*++++**#%@%%%##**%@@@@@@@%%%#####%@@@%#*@@@@@@@@@@@@@@@@@@@@@@@@@@@%**+=-...........::::::::::::::::::::.:.........
#++%%@@#*++++**#%%%@%##%@@@@%###%%%*+++*##%%@%%#***##%%@%@%%%%%#####%@@@@#*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#--:.........:::::::::::::::::::.::........
%++%%@@%*+++++**######%%#######%%%%**++++*#%@%%#**###%%%%%%%%%%#####%@@@%#*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+-.......:::::::::::::::::::::::::::::::
%*+#%@@#*++++++**#####%##########%#*++++++#%%%%#####%%%%%%%%########%@@@%#*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#=.......:::::::::::::::::::::::::::::.:
@*+#%@@#+=+++++++*#######%########*****+***%@%#######%%#%%##########%%@@%##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*........::::::::::::::::::::::::::::::
@*+#%@@*+=+++++===+*######***********+++**#%%%##*****#####**########%%@@%##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#.......:::::::::::::::::::::::::::::::
@#+*#@@*+=+++++===++******++*+******++++**#%%%##************#########%@@%##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%.......:::::::::::::::::::::::::::::::
@#++#@@*+=++====+++++++++++++++++***+++++*#%%%##**+*********########%%@@@##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%:..:..::::::::::::::::::::::::::::::::
@#++#@@*+=++===+++++++++++++++++*****++++*#%%%##*++++*******########%@@@@%#%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-..:.:::::::::::::::::::::::::::::::::
@%*+%@@*++++===+++++++++++++++++*#***++++*#%%%##++++++******######%#%@@@@%*==---=*%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-..:::::::::::::::::::::::::::::::::::
@%*+#@@#+++++==++++++++++====+*###***++++*#%%@%#+++++++*****#####%%%%@@*=::.. ...:-=+#@@@@@@@@@@@@@@@@@@@@@@@@@%=:...:::::::::::::::::::::::::::::::::
@@#=#@@#+++++++++++++++======+#%%#***++++*##%@@%*+=++++*****######%%%#+-            :=*%@@@@@@@@@@@@@@@@@@@@@@@%=:...:::::::::::::::::::::::::::::::::
@@%=*@@#+++++++++++++=======+*###*****++++*#%@@@#+===+++******###%%@*-                 *@@@@@@@@@@@@@@@@@@@@@@@%=:...:::::::::::::::::::::::::::::::::
@@%+*%@%*++++++++++++=======+*****+***++++*##%%%%*+=+++*******###@@*:                  +@@@@@@@@@@@@@@@@@@@@@@@%=:..::::::::::::::::::::::::::::::::::
@@@**%@@*+++++++++**++=====++***+++++++==++*#%%%%*+++++******###%%*:                  .*@@@@@@@@@@@@@@@@@@@@@@@@+:..::::::::::::::::::::::::::::::::::
@@@#*%@@#+++++++***+++====++++**++++=====+++*####*+++++*****###%@*-                   =%@@@@@@@@@@@@@@@@@@@@@@@@+:.:::::::::::::::::::::::::::::::::::
@@@%#%@@#++++**+***+++=+++++++***+++=---==++*####*+++++*****###%@=                   :%@@@@@@@@@@@@@@@@@@@@@@@@@+:.:::::::::::::::::::::::::::::::::::
@@@%#%@@#**+*****++++++++++**+*****+=--===+*######**++*****###%@=                   .=@@@@@@@@@@@@@@@@@@@@@@@@@@+:.:::::::::::::::::::::::::::::::::::
%%@@%%@@#*******++++++++++*+++****#*+===++*#%####*********###%%*.                   :%@@@@@@@@@@@@@@@@@@@@@@@@@@*-.:::::::::::::::::::::::::::::::::::
%%%@@@@@%*******++++++++++++++**###**++++*#%%%###**********##%#:                    =@@@@@@@@@@@@@@@@@@@@@@@@@@@%-.:::::::::::::::::::::::::::::::::::
@@@@@@@@%#******++++++++**++**#######*++*###%%%#####*******#%#=                    -*@@@@@@@@@@@@@@@@@@@@@@@@@@@@=.:::::::::::::::::::::::::::::::::::
@@@#*++*%#*******++++++***+**##%%@@%#%**#%%%@%@%#########*##%+                     +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=..::::::::::::::::::::::::::::::::::
*+=--::-#%*******+++++****##%%#%@@@@@%**%%@@@@@@@%%%@%####%%+.                    :#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=.:::::::::::::::::::::::::::::::::::
:......:*%#******++++**###%%%%#%@@@@@%**#@@@@@@@@@@@@@%%%#%#.                    .+%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=::::::::::::::::::::::::::::::::::::
.......:+#%##****++++*###%@@%%#%%@@@@%**#@@@@@@@@@@@@@@%%%*-                     :%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=::::::::::::::::::::::::::::::::::::
........-+%******++++*#%%%@%%####%@@%**+*%@@@@@@@@@@@@@@@%=.                    .=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+:::::::::::::::-::::::::::::::::::::
.........=#***#**++++*#%@@@%%%##*#%%#**+*%@@@@@@@@@@@@@@@+:                     -*%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+:::::::::::::::-::::::::::::::::::::
........::+####**+++++#@@@%%%@%#***##***#%%%%%@@@@@@@@@@@:                      +%*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@+:::::::::::::::-::::::::::::::::::::
.......:::-####***++++#@@%%%@@@%*====++**+***%@@@@@@@@@%-                      -*%#*#@@@@@%@@@@@@@@@@@@@@@@@@@@@@+:::::::::::--:--:---:-::::--:--:::::
:::::::-::-####***++++*%%%##%@@@%*+====++=*##@@@@@@%%@%+.                     .+###**#@@@#**#%@@@@@@@@@@@@@@@@@@@+::::::::::::::----------::--:-::::::
------:-::-*#%#****+++*%%%###%%@@%#*++++**#@@@@@@@%%%@#.                      -####***#%%*+++*#%%@@@@@@@@@@@@@@@@+::::::-----------------------:::::::
--------:::+#%##****++#%%%#####%@@@%####%%@@@@@@@@%%@%+                      .*####****#**++++++*#@@@@@@@@@@@@@@@+::::::-------------------------:::::
------::---=*%#********##%***###%%%@@@@%%%%%%@@%@%%%@=                      .-%###***********+++++**%@@@@@@@@@@@@+-::::::---------------------:-::::::
==----------+#%#******+**#*****#####%%%%%%#%%%%%%%@%+.                      :*###***************++++*#%@@@@@@@@@@+-:::::----------------------------::
=====-------=*%##*****+++************########%%%%%@#.                      .=###*****************+++++*#%@@@@@@@@+-:::-------------------------------:
=====------==+*%##********************#######%%%%@#-                       -*###******************++**+++#@@@@@@@+-::--------------------------------:
====-------===+@%#**###*******##****#######%%%%%@@+                        +###******************+++*++++**%@@@@@*-:-------------------------------:::
===-=-----====+%@%##%%%#******###%%%%%%%%%%%@%%@@#:                       -*#*#*******************++*+***++*#%@@@*-::--------------------------------:
=====-----===+*%@@%%%@%#*******#%%@@@@@@@@@@@@%@%-                       :+#*******************************++*%@@*-::---------------------------------
======---=-==++#@@@@@@@%*******##%%@@@@@@@@%%%@%=.                      .-#******####*#*******************+**+*#@*-::---------------------===---------
==========-==++*%@@@@@@%#******###%%%@@@@@@@@@@#.                       -*#*****########*##***************++****#+-::-------------------=======-------
+===========++++#%@@@@@@%#*****####%%%@@@@%@@@#=                       .+#****#############**********************+=-------------------=====+====------
++==========++++*#%@@@@@@%#*****######%%%%%@@%-                        -*#**##%###########*************************=-----------------=====++++===-----
++==========++++**#%@@@@@@%****###*###%%%%%@@=.                       .*#**##%%%%#####******************************+----------------====+++++++=-----
+++=+=======++++**##%@@@@@@%###########%%%@%*.                       .-#####%%%%%####******************************##+-------------=====+++*++++==----
++++++=====++++*+***%@@@@@@@%%###%%#####%%@#-                        :*###%%%%%#####*******************************##*=------------====+++***++++=----
++++++=====+++++****#%@@@@@@@%%%%%%####%%@%=                        .-%#%%%%%%%#####********************************##+=----------=====++*****+++=----
++++++++====+++++****#%@@@@@@@@@@@@%%#%%@@=                         -*%%%%%%%%%####**********************************##*----------====+++*****+++==---
**+++++++===+++++****##%@@@@@@@@@@@%%%@@@*.                        .+%%%%%%%%%####********************+***************##=--------====+++*******+++=---
****++++++=++++++*****#%@@@@@@@@@@@@@@@@#:                         =#%%%%%%%%####*******************++++**************##*=------=====+++********++=---
*****++++++++++++++****##%@@@@@@@@@@@@@%=                         :#%%%%%%%#####********************+++++*+++*********###+------====+++*********++=---
++*****+++++++++++++****##%@@@@@@@@@@@@#                         .=%%%%%%%%#####*******************++++++++++++*******##%*=----====++++*********++==--
==++***+++++++++++++++****#%%@@@@@@@@@*:                         =#%%%%%%%#####*******************++++++++++++++*******###+----====++++*********++==--
==++*****+++++++++++++++**###%@@@@@@@%:                         .*@%%%%%%#####*******************+++++++++++++++******####*---====++++***********++=--
++++***#**+++++++++++++++**##%#%%@@@%=.                         =#%#%%%######*****************++++++++++++++++++******###%#=--====+++************++=--
++++***###*++++*++++++++***######%%%*.                         :#%%###%#####*****************+++++++++++++++++++******#####+=-====+++************++=--
++++***####**+++++++++++***######%@*-                         .+%%%##%#####****************++++++++++++++++++++++*****#####*=====+++*******#*****++=--
+++++***####****+**+++******##%%%%%-                          -@%#####%###***********++++++++++++++++++++++++++++******#####+====+++******###****++==-
+++++***###%##*************#####%@=.                         :+%%#########*********++++++++++++++++++++++++++++++**+***#####+====+++*******##****++==-
+++++****###%%#*************###@%+.                          =%%########*********++++++++++++++++++++++++++++++++++****####%*===+++*******###****++==-
+++++****###%%%*************##%@%:                          :*%########******++++++++++++++++++++++++++++++++++++++****#####*+==++*****######****++==-
++++******###%%##*#*******####%%*                          .*#########******+++++++++++++++++++++==++++++++++++++++****######+=+++*****#####*****++==-
+++********###%%##############@+                          .-#%#######*****++++++++++++++=====+++=======+++++++++++******#####+=++******######*****++=-
+++********###%%%############%*:                          :*########*****++++++++++++++++====+=========+++++++++++++**#***###*+++******########***++=-
++++********###%%%##########%%:                          .=%#######******++++++=+++++++++===============++++++++++++*##***##%*+++******########***++=-
++++*********##%%%%########%#=                           =*####*#*******++++++==++++++===========+====+===++++++++++*##****##*+++*****#########***++=-
++++*********###%@%%#######%+.                          .+%#***********++++++===++++++===+================+++++++++********###*++*****#########***++=-
++++**********###%@%######@+:                           +##**********+++++++===+++++++==================++++++++++++++++***###*+***############***++==
++++***********##%%%%####%%-                           :###**********++++++====+++++++=====+++++=+++++==+++=++++++++++****####*****############***++==
++++************##%%%%##%%=.                          :*##****######**++++=====**+++++==++**###**#####*+=++=++++++++**########****##############**++==
+++++************##%%%###%***-                       .=%#******=-==+***++=====+**+++++==++*+-=-+#+===+*+======++=+++**+=--=*###***##############***+==
+++++************###%%%#%%%@%#=:.                    -*%*****#*...:=*#*++=====+**+++++==+++- . =*:...-+*=========++**#=...:*###**###############***+==
++++++************##%%%#%@@%%@@#-.                  .*%******%#    =*##*++++=+*****++++++++-.. +*.   :+*++===++++**###=   .*###*################**++==
++++++******+******#%%%%@@%%##%@%+:                .=*#******%#   .+%@%##%%%%####%%###%%####%%%%#:   :#@%#*++#%%%%%%%#=   :%%%%%################**+++=
+++++++*************##%@@@%%##%@@@#-.              :##****+++##    :--=#+---=+*----**----+*+---*#:   .---***#+------=*=    -----=*##############***++=
++++++++**+******+++*#%@@%%%%%%%@@@#=.            :+%#****+++##       .#=.  .-*.   **.  .-*-   =#:       =##+:      :*+         .=###############**++=
+++++++++****+++====*%@@@%%%%%%%@@@@%-.           =##*****+++##       .#=   .-*.   **   .-*-   +#:       =##.       .*+          .=##############**++=
**++**+****++---==+*%@@@%%%%%%%%%@@@@%=.         -*##****++++##       .#=   .-*.   **   .-*-   +#:       =+-        .*+           .+#############**++=
********++++====+*%%@@@%%%%%#%%%%%%@@@+.        .*##*****++++##     ..:%=   .-*.   **   .-*-   +#:    ..:+=:    ....-*+    ....    +#############**++=
***+++++++++=++**#@@@@@%%%%###%%%%%%@@=.       .=##*****+++++##    :===%=   .-*.   **   .-*-   +#:   .===#+:   .====+*=   .===-    +#############**++=
*+++===+=+++++****#%@@@@@%%###%%%%%@%#:        -@%#*****+++++##   .=#%#%-.  .=*.   **.  .-*-   +#:   :#%%%+:   -%%####=   :#%%*   .+#############**++=
+======+=+++++****+*#%@@%*%%##%%%@@@@#-:::.   :*@##****++++++##   .=#%%%-.  .=#.   *#.  .-*-   +#:   :#@#%+:   :@%#%##=   .###+    +###%#########**++=
==========++++****+++*##*=+%%%%%@@@@@%####*+==*%##*****++++++##    -+*+%=   .-+.   =+   .-*-   +#:   :+*+#+:   :**++*#=   .*##+    +##############*++=
============++****+++++*+++%@%%@@@@%%@@@@@@%##@@##*****++++++##    :---%=    .-    ::   .-*-   +#:   .:--*+:   .----=*+   .**#+    +#######%######**+=
====-========++++++++++***#@@@@@@@@%%%%%%%%%%@@%#*******+++++##       .#=.              .-*-   =#:      .+=:        .*+   .###+   .+##############**++
==------======++++++++++**#%@@%@@@@%%%%%%%%%%@@%##*****++++++*#-      .#=.              :**:   =#+.      =*+        .*+   .###+   .+##############**++
-----------====++=====+++**#%@#%@@@@%%%%%%%%%@%%#******+++++++**-     .#=              :+#*:   =##=.     =##-.      .*+   .###+    +##############**++
----:::::-----===----==++++*###*#%@@@%%%%%%%@@%##******++++++=+#*-....:#=..............*%**-...=###+ ....=*#%-......:*+...:*##+...:+##############**++
--::::::::::-----:----===++*###*##%@@%%%%%%%@@%##*******++++++=+*#*****#***#*****#*****###*****##*##*******###*******##****###******##%####%##%###**++
=-----------::::::::::--==+*####*#%@@%%%%%%@@@%##********++++++++*#####*#################**#####*#*#########*###############***###**#########%%####**+
++++++++++++====--:::::--==+*###**#%%%%%%%%@@@%##*********+++++++**********#******************#***********#*********#*****#*****#####%%#####%%%####**+
*+++****######**+=--::::--=+*###*#*#%%%%%%%@@%%###********++++++++++**#************************#*******#***#*************##*****####%%%%%%%%%%%%###**+
                            
%%%%%%%%%%%%%%%%%%%%%%%%#######################################*#############*#############*###*######################*******
%%%%%%%%%%%%%%%#%#########################*###**********#*##**************************************####################*+++++*
%%%%%%%%%%%%%%%%%%################**##*#*####*************##********##****************************##*#################++++***
%%%%%%%%%%%%#%%%%##################*##*****##*************###**************************************#**###############*++++++*
%%%%%%%%%%%%%%%%#################*#**#*****##*****************************************************########*##########*++++++*
%%%%%%%%%%%%%#%%#################**#*#**###*#*****************************************************#*###*##**#*#######*+++++++
%%%%%%%%%%%####%##################*#*#######%%%###************************************************#**##**#**#########*++++++*
%%%%%%%%%%%####%##################**###%@@@@@@@@@@%%##*********************************************##*#**#####*######*+++++++
%%%%%%%%%#%#########%############**%@@@@@@@@@@@@@@@@@@@%#********************************************###*#*#*###*##***+++++++
%%%%#%%%##%#########%#############%@@@@@@@@@@@@@@@@@@@@@@%********************************************######**##*###**+++++++
%%%%%%%%############%###########%@@@@@@@@@@@@@@@@@@@@@@@@@@#***************************************#****####**##***#**+++++++
%%%%%%##############%#########%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%***************************************##**##*****##**#**+++++++
%%%%%########################%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%***************************************************#****+++++++
%%%%%##%#############%######%@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@%#*************************************************#****+++++++
%%%%#################%####%%@@@@@@@@@@@@@%%%@@@@@@@@@@@@@@@@@@@@#****************************************************++++++++
%%%%#%%##################%@@@@@@@@@@@@@@@%%%%%@@@@@@@@@@@@@@@@@@@#*************************************************#*++++++++
%######################*#@@@@@@@@@@@@@@%%%%%%%@@@@@@@%%%%@@@@@@@@@#***********++*************************************+=++++++
%#########%#############%@@@@@@@@@@@@@@@%%%%%@%@@@@@@%%%%@@@@@@@@@%**************************************************++++++++
%%%##%##################%@@@@@@@@@@@@%%%%%#%%@@@@@@%%%%%%@@@@@@@@@@%****+**++****************************************+===++++
%####%##################@@@@@@@@@@@@@@@%%%##%%@@@@@@%%%%@@@@%%%@@@@@#**************+*********************************+===++++
%######################@@@@@@@@@@@@@%%%@%%###%%@@@@@@%%%@%%%@@@@@@@@@#**+*++++++***+*********************************+===++++
%#####################%@@@@@@@@@@@@@@@%%%%###%%%%%%@%%%@@@@%%%@@%%%%@%#*+*+++**+***+*********************************+===++++
%#####################%@@@@@@@@@@@@@@@###%#*##%%%%%%%%%@%%%%%%@%%%%%@@%*+++++++++*******+****************************+==+++++
%#####################%@@@@@@@@@@@@%%*=*#%#**%##%%%%%%%%%%%%%%%@@@%%%@%***+++++*+******************#*****************+==+++++
%%####################@@@@@@@@@@@@@%**###****=:###%%%%%%%%%%%%%@@%@%%@@#******++*****++******************************+=======
#%###################%@@@@@@@@@@@@@%%#*****+++=#%%%%@%@@@%@%%%%@%%%%%%@#***+++++****+++******************************+=======
#####################%@@@@@@@@@@@%%%#*###*-. .-.%%%%%**%%%%@%%%%%%%%%%@#**++++++****+++*********+********************+=======
#%###%###############@@@@@@@@@@@%%%%*###=:      :*%%%*+++++*#%%@@@@%%%%%**+++++++++++++*********+********************========
#####################@@@@@@@@@@%%%%##+=:  .   :  =%%%#*++*+++++*#%@@@%%%**++++++++++*++++****************************========
#%###################@@@@@@@@@@%%*#+-.:.      :+*#%%%%%%%###*++*+#@@@@@%**+++++++++*+++++****************************========
##%#################%@@@@@@@@@@%#=+:  :.   .. .++#%%%%%%%%%@@@%%##@@@@@%*++++++++++++++********+*********************========
##%#############*###%@@@@@@@@@@%%#=   .    .  .=+###%%*=+*##%%%@@@@@@@@%*+++++++++++++********+*********************+========
####################%@@@@@@@@@@%@#    .:. .:   -*#*#%*=---==+**##%@@@@%%*++++++++++++++++********+*******************========
#################*###@@@@@@@@@@%%# :=  .::.:-:-#*+*%#=-:---===++++*#%@@%*++++++++++++++++****************************========
#################*###@@@@@@@@%@%@* -=:  .:--+*##**%#+:::----===+++*#%@@@**+++++++++++++++****************************========
#################**##@@@@@@%@%#%%%*++=  -+-:+*+*###*-:::-----===++*#%@@@*++++++++++++++++***************************+========
####%#############**#@@@@@@%@%+%%%%#+===##*+++*++**=::::------==++*#%%@@%#**++++++++++++****************************+========
####%#############**#@@@@%@%@@*#%%%%#**%#**+++=+**+-:::::------==++##%%@@@@#+++++++++++++++++++*********************+========
#####%############**#@@@@%%@@%##@%#*+==+***=++**++-::::::------==++*##%%%#***++++++++++++++++++++*******************+========
#####%#############*#%@%%%%@@@@%%%%##++**+=**++=-:.::::::-------==+*##%%%#**++++++++++++++++++++********************+========
##################*#*%@%%%%@@@%%#%%#%%#**#*+=-:....:::::::------==++*##%%#++++++++++++++++++++++********************+========
######################@@%%@%@%*++++++****++-:......:::::::-------=++**#%%#=++++++++++++++++++++*+*******************+========
#####################*%@@%%%%#+===-----==-:.........:::::::-----===++*#%@%=+++++++++++++++++++++++******************+========
###################*#*#@@@%##*+===----:::::.............::::--==+++=+**%%%++++++++++++++++++++++*+******************+========
################*###**##@@%#**+===---:::::..............:.::=*#%%%%#*+*#%#++++++++++++++++++++++++******************+========
#######%########*##*#***%@@%**+===---:::::...............:-**##+====++**%+=+++++++++++++++++++++++******************+========
#######%########*##*##***%@%**+===---:::::..............:=***+=======+**#+-++++++++++++++++++++++++*+***************+========
#######%########*#*#*#***#%@#*+====--::::..............-***+--=++++===+*#*:++++++++++++++++++++++++*****************+========
################*##*******#@%*++==---:::::............=*#*=-+##%###+--++*#-++++++++++++++++++++*++*+*+**************+========
################*##*******#@%*++===---::::..........:-*#+--#*#**##*---=+*#++++++++++++++++++++++++++++**+***********+========
################*#********#@@#*+===--:-::::.........:+*+:-#*=+==#+=----=**=+++++++++++++++++++++++++++**************+========
################*#********%%%#*+++=--=======-::....:-=+-:+--++**==-:---=*+=*++++++++++++++++++++++++++**************+========
##################**********%##*+=+#####*****=:....:--=-==-=+==---:::-==++=+++++++++++++++++++++++++*+**************+========
#################*********#+#%##+#%#**++++++++-:...::--------::::::---==+*=++++++++++++++++++++++++++***************+========
#################***********#%##%%++==+***+=:-=:....:---::--:::::::---==+*=+++++++++++++++++++++++++++**************+========
#################***#********%#%#==++#%#=*+++-=-:...:-=-:::.:..::::---==+*-+++++++++++++++++++++++++++**+***********+========
#################************###+=++%#+*=+-:=+==:...:---::.....::::---==+*%+++++++++++++++++++++++++++++************=========
################*************##*+++%%--+++==---=-...:---:.......:::---==+*=**++++++++++++++++++++++++*+++***********=========
##################***********##*++**##**++-::--=-....:--:.......:::---==+**+*++++++++++++++++++++++++*+++***********+========
##################***********##*+==++++=-:::::-=-:...:---:.......:::---=+***++++++++++++++++++++++++**+++***********=========
##################***********#%*+----=--:::.:::--:...:---:.. ....::::--=+*+=*++++++++++++++++++++++****+************=========
##################************%#+=-----:::..:.:=-:....----........::::-=+***+++++++++++++++++++++++*+**+**+*********=========
####################**********#%*==----::::...:---....:---:........:::-=+*+*+++++++++++++++++++++++*++*+************=========
####################***********@#+==----::....:-=-.. .:-=--.........::-=+***+++++++++++++++++++++++*++*************+=========
########%##########************#%*+===--:::...:-=-:.  .:---:........::-=+*%@%#*++++++++++++++++++++*++**+***********=========
####################***********#%*++==---::...:-=-:.   .:::-........::-=+*%%%%%%%%%%##**#**#######**++++*+**+*******=========
#####################**************+===--:::...---:.   ..:::........::-++*%%%%#*####%%%%%%%%%%%##%%%#**+**+*********=========
#########%###########***************+==--:::...--:..    .:::........::-++#%%%%%*+++*+*****##########%%#*+**********+=========
#########%###########***************++=--::....--:..    .::........:::=++#%%%%%%*==+++++++*******#####%%#**********+=========
#########%###########****************+=--::....:-:..  ..:::.:..::...:-=++%#%%%%%%+-=-=====+++*********##%#*********+=========
##########%###########***************++=-::.....::::...::::..:::::..:-=+-+%%%%%%%%-:-----====++++++****##%#********+=========
##########%##########************++***+=-::......::::::.......:::::.:-=+:-%%%%%%%%*:::----=======+++*****###*******+=========
##%###############**##*****************+--:......::::.......:-==-:..:-==:.*%%%%%%%%=:::---=========+++****#%*******+=========
######################***************##*=-:::...:::::......-=+=-:.:::=+=:.=%%%%%%%%%-:---===========++++***##******+=========
##%########%###########*************%@#*+=:::..::::::....:=----=:..::==-::.+%%%%%%%@#--===------====+++++**###*****+=========
##%####################***********#@%%*+*+-:::::::::::::-=-..:==::::-==-::::*%%%%%%%%*-=--------=====++++**###*****+=========
########################*********#@%%%#+*+=--::::::====-:. .:-+-...:-==-:::.:#%%%%%%%%+-----:---======++++**###****+=========
%###########%###########********%@%%%%%++++=-:::-=+=-:.   .:-==-:.::-++-:::::-%%%%%%%%#::::::----=======+++**##****+=========
%#######################******#%@%%%%%%*=++=-::--==-:.. .::-==-::..:-++=---:::+%%%%%%%%+.:::::----======+++**###***+=========
#########################****#%@%%%%%%%#==+==--:--=+===-------:::..:=+++=------#%%%%%%%%::::::-----=====+++**###***+=========
%%#######################****#%%%%%%%%%%*-====-----====-:::--:::..:-==+++======*%%%%%%%%*.:::::----=====++++**##***+=====+===
%%####################*##***%@%%%%%%%%%%%======------=-::-=-:::...:=====+++==+++*%%%%%%%%-::::-:---======+++**###**+=====++=+
%##########################@%%#%%%%%%%%%%#-==-=--:--::-===-:::....:+=--==+++++===%%%%%%%%#:::::-----=====+++**#%#**+=====+===
####%##################*#%@%##*#%%%%%%%%%%+==------:::::-::......:==-::--======--*%%%%%%%@=:::::----=====+++**#%#**++===++==+
%%#####%###############%@@%#**+*%%%%%%%%%%#=-=----::::::.........-+-::::---------=%%%%%%%%%-::::----======++***#%#*+++=++++++
%%%%##################%@%###*+==#%%%%%%%%%%+-------:..:.........-+:::::::-----:---#%%%%%%%%*-::-----======++***#%#*+++=+++=++
%%%%%################%@%##**+=--+%%%%%%%%%%*--------::........:=+:.:::::::::-::::-+%%%%%%%%%+:------======++***#%#*+=+=++++++
%%%####%############@@%%#**+==---#%%%%%%%%%#=---:::-=-:...::--++:..:.::::::::::::-=#%%%%%%%%#=-----=======+++**#%#*+=+=+++=++
%%%%##%##%#########@@%%#**+==---:*%%%%%%%%%%=-:::::::=++=--=++=:.....:::::::::::---*%%%%%%%%@*-----=======+++**####++=+++++++
%%%%%#%##%#######%@@%%#**+==----:-#%%%%%%%%%*-::::::..:-=+==--::......:::::::::::--+%%%%%%%%%%+--=========+++**####++++++++++
%%%%%%%%%#######%@@%%##*++==---:::+%%%%%#%#%#-::::::::.....::--::......:::::::::---=%%%%%%%%%@#=====++===+++***##%#++++++++++
%%%%%%%%#######%@@%##**++===-----:-%%%%%%%%%%=--:-::::...:::::-:::......:::::::::---#%%%%%%%%%%*===+++===+++***##%#++++++++++
%%%%%%%%%#####%@@%##**+++===-----:-*%%%%%#%%%*----:::.....::::-:::........:::::::---*%%%%%%%%%%%+==++++=++++***##%#*+++++++++
%%%%%%%%%%%##@@%###**++++=====-----+%%%%%%%#%#=---::::::..:::::::::::.....::::::----+%%%%%%%%%%%#+=+*+++++++***##%#*+++++++++
%%%%%%%%%%%%@@%%###***+++++++++==--=#%%%%%%#%%*---::::::..::::::::::::...:::::::----+%%%%%%%%%%%%*+**++++++****##%%*+++++++++
%%%%%%%%%%@@@%####*****+*********+==+%%%%%%%#%#=--:::::::::::::::::::::...::::::----+%%%%%%%%%%%%%****+++++****##%%*+++++++++
%%%%%%%%%@@%%####************+++++*+=#%%%%%%%#%+--::::::::::::::::::::....::::::----+%%%%%%%%%%%%%#*#*+++++****##%%*+++++++++
%%%%%%%%@@%%###*************++++++++++%%%%%#%#%#-:::::::::::::::::::::::::::::::----+%%%%%%%%%%%%%%##*++++*****##%%#*++++++++
%%%%%%@@@%%#####***********+++====++++#%%%%%%##%*:::::::::::::::::::::::::::::::----*%%%%%%%%%%%%@@%*+++++*****##%%%*++++++++
%%%%%@@@%%%######********++++======+++*%%%%%%##%%=::::::::::::::::::::::::::::::----#%%%%%%%%%%%%%@%*++++******###%%#*+++++++
%%%%@@%%%%########******++++=======++++#%%%%%###%*::::::::::::::::::::::::::::::---+%%%%%%%%%%%%%%@%*++++++****####%#*+++++++
%%%@@%%######*##****#**+++==========+++*%%%%%%###%=:::::::::::::::::::::::::::::---#@%%%%%%%%%%%%@%%+++++++++**####%%#+++++++
%@@%######*************++===========++=+#%%%#%%%%%#-::::::::::::::::::::::::::::-:=%%%%%%%%%%%%%@%@#+++++++++***###%%%*++++++
@@@%###******++*+****++++===============+%%%%####%%*::::::::::::::::::::::::::::--*%%%%%%%%%%%%%%%@#+++++++++***####%%#*+++++
@%%###*****++++++++++++======-===========#%%%%#%#%#%=::-:::::::::::::::::::::::-:=%%%%%%%%%%%%%@@@@#++==++++++***###%%#*+++++
@%##***++++++++++++++=====-----==========*%%%%##%##%#-::::::::::::::::::::::::::=#%%%%%%%%%%%%@@%@@*++==++++++***###%%%#+++++
%##****+++++=+==========--------==========#%%%#%##%#%*:-:-::-::::::::::--::::::-#%%%%%%%%%%%%@@@@@@*++====+++++**###%%%#*+++*
%#****+++++===========-----------=========*%%%%%%###%%+:--:-::::::::::-----:::=#%%%%%%%%%%%%%@@@@%@*+=======++***####%%#*+++*
#***++++++==========--------------========+#%%%%%%##%%%+-:--:---:::::------:-*%%%%%%%%%%%%%%%@@@@@@*++======++****###%%%**++*
#***++++==========------------------=======*%%%%%%%#%%%%+:--:--:::::-------+#%%%%%%%%%%%%%%%%@@@@@@*++++====++***####%%%#*++*
#**++++=========----------------------=====+%%%%%#%%%%%%%*---:----------=*#%%%%%%%%%%%%%%%%%%@@@@@@**+++++++++***#####%%#*++*
**++++========--------------------------=-=+%%%%%%%%#%%%%%#+---::----=+#%%%%%%%%%%%%%%%%%%%@@@@@@@@#**+++++++*****####%%#**+*
**+++========----------------------------=-=#%%%%%%%%%%%%%%%#*+=-==+*#%%%%%%%%%%%%%%%%%%%%%@%@@@@@%#***++++++*****####%%%#***
*+++=======-----------------------------=-==*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@%#***+++++****#####%%%#***
*++======---------------------------------==*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@%%##***********#####%%%#***
+++=====----------------------------------==*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@%####**********####%%%@%#**
++=====----------------------------------=-=+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@%#####*********####%%%@%#**
++====------------------------===----------=+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@%###%##******######%%%@%#**
+=====-----------------------=====--------==+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@%#####%###****#######%%@%%**
+====-----------------------======-------===+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@%#####%%#############%%@@%#*
+===-----------------------========-----====+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@@@@@@@@@%######%%%%###########%%@@%#*
====--------------------======+++====--=====+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@%#######%%######*#####%%%@%#*
====-----------==============++++===========*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@%########%%%###########%%@@%%#
======------===============++++++==========+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@%%%######%%%%#########%%%%%@@%#
========-==================++**++==========+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%@@@@@@@@@@@@%%%%####%%@%%%########%%%%%@@%#
                            
...                                                                                       ...:::::...::::::..........:::.::::----------:.-------:::.  
...                                                                                       ...:::::...::::::..........:::.::::----------:.------::::.  
...                                                                                       ...:::::...::::::..........:::..:::----------:.------::::.  
...                                                              ..                       ...:::::...:::::...........:::.::::----------:.------::::.  
.                                                           .:--:..:.                    ....:::::...:::::.......:...:::.::::----------: ------::::.  
.                                                         .:--.:--..::                   ....:::::...::::::......:..::::.::::----------: ------:::..  
.                                                         :--.  .-:.:-.    :             ...:::::::..::::::......:..::::.::::----------: ------:::..  
.                                                        .:-::.  --::--.::-=-:::.        ...::::::::.:::::...:...:..::::.::::----------: ------:::..  
.                                                        :-=-::--=======+======--::     .::.::::::::.::::::..:...:..::::.::::----------: ------:::..  
.                                                  :--=-=-==-::-=++++++++++++++===----===+-::-:::::::::::::..:...:..::::.::::----------: ------:::..  
.                                                .--=======+=====-++++++++++++++++===++++++=-----:::::::::::.:...:..::::.::::----------: ------:::..  
.                                             :---=-====+++++++==-++++++++++++++++++++++++++======--::::::::.:...:..::::.::::----------. ------:::..  
.                                            -=======+++++++++++++++++++++++++++++++++++++++=========--:::::::...:..::::.::::----------..------:::..  
.                                           -::==+++++++++++++++++++++++****************+++==++=++++++=-::::::...:..::::.::::----------..------:::..  
.                                          ---==++++++++++++*+++************************+++++++++++++=+=-::::::..:..::::.::.:----------..------:::..  
.                                      .:::==+++++++++++++********************************+***********+++=--:::.::..::::.::.:----------..------:::..  
.                                 .::::=--==+++++++++++*************************************************++++-::.:::.::::.:::-----------..------:::.   
.                               :-:====+++++++++++********************************************************+++-:::::.::::::::-----------..------:::.   
.                              :-:-==++++++++++++*********************************************************+++=-::::.::::::::-=---------..------:::.   
.                              ---=++++++++++***************************************************************+++---:.::::::::-==--------..------:::.   
.                          .--:-=++++++++++********************************************************************=---:::::::::-=---------..-----::::.   
.                         .-:-=+++++++++**************************************#####****************************+==--:-::::::-=--------:..-----::::.   
.                         :- .-+++++++*******************************########################*******************+==---::::::-==-------: .-----::::.   
.                         :=:::+++++***************************##################################*#**************+=----:::::-==-------: .-----::::.   
.                         .-=++++++**********************##############################################***********+=---:::::-==-------- .-----:::..   
.                          :++++++*********************##################################################**********+=---::::-==-------- .=-----::..   
.                         .=++++*******************########################################################*********+=--::::-===------- .=-----::..   
.                        :=+++++*****************#########################################################**********+=--::::-===-=----: .=-----::..   
.                       -=++++*****************#############################################################*********+=--:::-=====----: .-----:::..   
.                      =+++++******************##############################################################***********=-::-====-----: .-----:::..   
.                    :=+++++****************#################################################################***********+=::=======---: :-----:::..   
.                 ..=++++++***************##################################################################*************+=:=======---: :-----:::..   
.                . -++++++**************######################################################################***********++========---: :=----:::..   
.                .-+++++*************#*########################################################################************+=======---: :=-----::..   
.               .=++++**************#############################################################################**********++=======--: :=-----::..   
.               :++++*************###############################################################################**********+++======--: :=-----::..   
.              :=+++*************#################################################################################*********+++======--: :=-----::..   
.             .=++++************###########################################*****##################################*********+++++====--: :=-----::.    
.            .=++++************###########################################*********###############################**********+++++===--: :=-----::.    
.            -++++***********############################################*************##############################*********+++++==--: -=-----::.    
:           :++++***********###########################################********************########################***********++++==--: -=-----::.    
:           ++++***********#########################################*************************######################*************++==--: -=-----::.    
.          -+++***********##################################**********************************######################*************++==-: -=-----::.    
:         .+++***********###########################*#*##**************************************######################************+++=-: -=-----::.    
:         -+++**********#########################************************************************####################************+++=-: -=-----::.    
:        :+++**********########################*****************************************************##################***********+++=-: -=-----::.    
:        =+++*********########################********************************************************###############***********+++=--: -=-----::.    
:       .=++**********########################*************************************************************###########***********+==--: -=-----::.    
:       :+++*********#######################*******************************************************************#######***********++=--. -=-----::.    
-       =++********########################***********************************************************************###************+++==: -==----::.    
-      :+++********#######################*****************************+******************************************###*************++++=.-==----::.    
-      -++*********#####################**************************************************************************###*#***********+++++====----::.    
-      +++*********#####################****************************************************************************#*#************+++++===----::.    
=     :+++***********#################*****************************************************************************####*************+++++==----::.    
=     -+++********+++*################*****************************************************************************####**************++++==----::.    
=       -++*****++--+################*****************************************************************************######************+++++==----::.    
=    ::.-*++::+=-==+*################******************************************************************************#####*************++++==----::.    
=    =++++*+  ==-=+*#################*******************************************************************************####*************+++++=----::.    
=   .++++*+++ =-:+**#################**********************************************************************************#*************+++++=----::.    
=   :+++****+ :+=***#################**********************************************************************************#*************+++++==---::.    
=   :+++****-  +*=+*#################**********************************************************************************#*************++++++=---::.    
=   -++***++:  .+++*################***********************************************+*************************************************++++++=---::.    
=   -++***+=:   =**#################*******************************************++++++++******************##***************************+++++=---:..    
-   :++***++=   =**##################**************************++++++++*+++**++++++++*************############*********##*************+++++==--:..    
    .++******+=-+*###################********####***************++++++++++++++++++++**********###################*********************+++++==--:..    
    .+++*********####################****#############************++++++++++++++++******##########################********************++++++=--::.    
    .=++*******#####################***####################*********++++++++++++++****############################*********************+++++=--::.    
     =++*****######################***#################%#######*******+++++++++++****###############***********************************+++++=--::.    
    .++*****#####################***###################%###########****+++++++*******#########****************************************++++++==-::.    
    =++****###############%######**################################******+++*********####*********************************************++++++==-:..    
   .++*****###############%%%###***########***************#########********************************************************************+++++==-:..    
   -+*****###############%%%%###**########********************#####********************************************************************+++++==-:..    
   =*****#############%%%%%%%###***######*************************#***********************###******************************************+++++===-.     
. :+****#############%%%%%%%####*********#*##################*****#*#**************###*#####################***************************+++++===-.     
..=****############%%%%%%#######********##############################************############################***********##***********++++++==--:     
.:+***#############%%%%%%%%%####********###############################***********############################***********##***********++++++===-:     
:=***############%%%%%%%%%%%####********####%%%###%%%###%###############*********#############################***********##***********++++++===-.     
=+**############%%%%%%%%%%%%%###********####%%%####%%###################******#***########***##############**************##************+++++==--.     
**##############%%%%%%%%%%%%%####******#################################**********##########**###########*****************************++++++==-:.     
**##############%%%%%%%%%%%%%####******#################################**********####################*********************#***********+++++==-:.     
#################%%%%%%%%%%%%####******################################***********############*####************************************+++++==-:.     
#################%%#%%%%%%%%%####*******###############################************#######*********************************************+++++==-:.     
######%##########%%#%%%%%%%%%####*******###############################************######***********************************************++++=--:.     
#####%%##########%%#%%%%%%%%%####************#########********#*#######************#####************************************************++++=--:.     
####%%%%#########%%%%%%%%%%%%####************************************##************####************************************##***********++++=--:.     
####%%%%######%%#%%%%%%%%%%%%####************************************##************####************************************###**********++++=--:.     
%%%%%%%%%#####%%%%%%%%%%%%%%%#####**********************************##*************####************************************###**********++++=--:.     
%%%%%%%%%%#%%%%%%%%%%%%%%%%%%######********************************####************####************************************####**********++==--:.     
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####*******************************#########**********#####***********************************####*********+++=---:.     
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####*****************************#########***********######**********************************#####*********++==--:.     
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####******************************######***************######*********************************######********++==--:.     
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####*****************************#######****************#####********************************#######*******++===--:.     
%%%%##%%##%%%%%%%%%%%%%%%%%%%####*****************************######******************####********************************#######*******++===--:.     
%%%%%%#=:*%%%%%%%%%%%%%%%%%%%####**********************+******#####********************###********************************########******++===--:.     
##***+-+##%%%%%%%%%%%%%%%%%%%%####********************+*******************************************************************#########******++==--:.     
##  .+###%%%%%%%%%%%%%%%%%%%%%####*****************************************+++++*****************************************###########******++==-:.     
##:+#%%%%%%%%%%%%%%%%%%%%%%%%%######*******************************#*******+++++*****************************************###########****++++++=-.     
###%%%%%%%%%%%%%%%%%%%%%%%%%%%######******************************####******+++*****************************************#############**++++++++=:     
##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####*****************************#######************##**********************************############****+++++++==-.   
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######**************************##########**********######******************************##############***++++======-:  
#%%%%%%%%%%%%%%%%%%%%%@%%%%%%%%#######************************############******##########****************************################***+++===-: :--.
#%%%%%%%%%%%%%%%%%@@@@@%%%%%%%%#######**********************#####%%#########***#############*************************######%%#########***+++===-.   :-
#%%%%%%%%%%%%%%%@@@@@%%@@@@%%%%#######*********************######%%%%%%%######################**********************######%%%%%########**+++===-.    :
##%%%%%%%%%%%@@@@%%%%@@@@@@@%%%%#######*******************######%%%%%%%%%########%%%%%%%########*******************######%%%%%%%########*++++==-.     
###%%%%%%%%%@@@@@@%%%@@@@@@@@%%%#########****************########%%%%%%%#########%%%%%%%%%########****************#######%%%%%%%%#######**+++==-.     
###%%%%%@%%%%@@%%%%%%@@@@@@@@%%%%##########**********#############%%%%%##########%%%%%%%%%########*************#########%%%%%%%%%######*****++=-.     
*##%%%%%%%%%%%%%%%%%@@@@@@@@@@%%%##########**********#############################%%%%%%%###########**********#########%%%%%%%%%%%%###*******++=:     
++#%%%%%%%%%%%%%%%%@@@@@@@@@@@%%%%#########*********####################*#*##*#######%%%%%####%%#####********#########%%%%%%%%%%%%%%#####*******+==-:.
**#######%%%%%%%%%@@@@@@@@@@@@%%%%%#########********####%##############*********##############%%#####********#########%%%%%%%%%%%%%%%########*****++++
##%%%%%%%%%%%%%%%@@@@@@@@@@@@@@%%%%##########*******#################***######################%%%%####*******########%%%%%%%%%%%%%%%%%%%#######*******
%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@%%%%#########*******###%%#########****+******##******###########%%####******#########%%%%%%%%%%%%%%%%%%%%%########****
%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@%%%#########******####%%####%%%##********************#####%%#########******########%%%%%%%%%%%%%%%%%%%%%%%%%#########
%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@%%%%#########*****####%%###%%%%#####***************######%%%#########*****#########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####
%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@%%%%########*****##########%%%%########*********#######%%%%#########*****########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%########****##########%%%%%#######################%%%%########*****########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%#########***###########%%%%%############**#######%%%%%########*****#######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%##########**###########%%%%%%#####*#*****########%%%%#########*****#######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%#########***###########%%%%%########***########%%%%%######*#*****#######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%########********#######%%%%%####********######%%%%%######******#######%%%%%%%%%@%%%%%%%@@@@@@%@@%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%#########*****#########%%%%%##***********###%%%%%########*****#######%%%%%%%%%@@%%%@%@@@@@@@@@@%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%#########****###########%#%####******#####%%%##%########****#######%%%%%%##%%@@%@@@@@@@@@@@@@@@%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%##########***###########################################***#######%%%%%%###%%@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%#########***##########################################***######%%%%%%####%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%########***##########################################***#####%%%%%%#####%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%#######**##########################################*####%%%%%%%%######%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%####**###############*#**###########################%%%%%%%%#######%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%####*#############################################%%%%%%%%%########%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@%%%%%#################################################%%%%%%%%#########%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@%%%################################################%%%%%%%%#########%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%@@@@@%%%###############################################%%%%%%%##########%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%@@@@@%%%################%%###%%%%%###%%##############%%%%%%%###########%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%@@@@%%%#####################%%%%####%#############%%%%%%%############%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%@@@@%%%%#########################################%%%%%%%############%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%@@@@@%%%########################################%%%%%%#######***###%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%@@@@@%%%######################################%%%%%%#######****###%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%@@@@@%%%##################################%%%%%%%%#######*****##%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%@@@@@%%%################################%%%%%%%%#######*****###%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%@@@%%%%%#%######################%%##%%%%%%%%%%#####*******###%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%@@%%%%%%%%%%###################%%%%%%%%%%%%%#####*******###%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%#%%@@@%%%%%%%%%%#################%%%%%%%%%%%%%######******###%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%##%%@@@@%%%%%%%%################%%%%%%%%%%%%%#######*****####%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%###%%@@@@@@%%%%%%%%%%######%%%%%%%%%%%%%%%%#########**######%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%###%%%@@@@@@@%%%%%%%%%%%#%%%%%%%%%%@%%%%##################%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%####%%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%###*###############%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%#####%%%@@@@@@@@@%%%%%%%%@@%@@@@%%%%######****########%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%######%%%@@@@@@@@@@@@@@@@@@@%%%%%#########***#######%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%#######%%%%@@@@@@@@@@@@@@%%%#######################%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%#########%%%%%%%%%%%%%%%%########################%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%##############################################%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%#############################################%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                            
=++++++++++++++++=-------::::::-=++++++*+++++++++-:..::--------=+++++++++++++++++++++++==-:::--=+++++++++++++++==------------====---------------------
=++++++++++++++++=-------:::::--=++++++++++++++++-:::--========+++++++++++++++++++++++++=-::::-=+++++++++++++++==------------==================-==----
=++++++++++++++++=--------::::--=++++++++++***+++====+++++++++++*******************+++++==-::.:-+++++++++++++++=--:::::::::---=+++++++++++++++=======-
=++++++++++++++++=-::-----::::--=+*+++++++++++++++++***********************###********++++==-::-+++++++++++++*+=-:::::::::::--+**************+=====---
=+++++*******++++=--::-----:::--=+*++++++++++++++++*******#####*****#####*******#***********+===++**+++++++++++=-:::::::::::--=++********+++++==------
=+++++**********+=--:::------:--=+*++*+**+++++++*******##################*******####*****####*+++++*+++++++++++=--::::::::::--=++++++++++++++==-------
=++++++*********+=--:::---------=+*++*+*++++*********######################***###**###########*++++++++++++++++=---:::::::::--=++++++++++++++==-------
=++++++++++++++++=---::---------=+*++++++++****###################################*###########**+++++++++++++++=---:::::::::--=+++++++++++++++=-------
=+++++============---:::--------=+*+++++++**###################################################****++++++++++*+=---::::::::--=++++++++++++++++=-------
=++++=---------------::::-------=+++++++++*######################################################****+++++++**++=--:::::::---=++++++++++++++++=-------
=++++=-::::::::::----::---------=+++++++***########################################################*****+++++*++=--::::::::--=++++++++++++++++=-------
=++++=-::::::::::---:--------::-=+++++***############################################################****++++++=---::::::::--=++++++++++++++++=-------
=++++=-:::::.::::------------:--=+++***################################################################***+++++=---::::::-:--=++++++++++++++++=-------
=++++=-::::::::::-----------:---=++**####################################################################**++++=----::::-----=++++++++******++=-------
=++++=-::::::::::-------------==++*#######################################################################**++==---::::::----=++++++++++++++++=-------
=+++++-::::::...:------------==+***#########################################################################*+=---::::::::::-=+++++++++++++++==-------
=+++++=::::.....:-----------=++**####################################################################*######*++=-------------=++++++++++++=+====------
=+++++=-::::...::----------=++**########################%%###########***######################################*++============++++++++++++++++++=======
++++++=-----:::--====-=====+**#######################%%%%%%%#######*******######################################*+++++++++++++++++++++++++++++++++++++
++++++++========++++++++++++*#######################%%%%%%%%%####################################################***++**++++++++++++++++++++++++++++++
*+++++**********************########%%##############%%%%%%%%%##################################%%%%%###############**********+++++++*******+++++++++++
*+++++**********************######%%%#############%%%%%%%%%%%#################################%%%%%%%%##############**************++********++++++++++
++++++*********************######%%%%############%%%%%%%%%%###%%%#%%%%%%%####################%%%%%%%%%##%%%#########**************+++*++++++++++++++++
+++++*********************######%%################%%%%%%%#########%%%%%%%####################%%%%%%%%###%%%##########*************++++++++++++++++++++
+++++*++************++++**####%%%####***#############%%#############%%%%#####################%%%%%%%%########%%#######***********+++++++++++++++++++++
+++++**+************+++**#####%%%###**#*#############################%%######################%%%%%%%%########%%%#######**********+*+++++++++++++++++++
+++++++**+**********+++**####%%%%##***###############################%#########%%############%#%%%%########%%%%%%#######*************+******++++++++++
++++++***+**********++**####%%%%###**##############################%%#########%%%%%%###########%%%%#########%#%%#########**********************++++*++
*********************+**##%%%%%################%%##################%%#########%%%%%%%%###########%%#%%###################**************************+*+
*******+***************####%%##################%%#################%%%%#######%%%%%%%%%#########%#####%%%############%##%##****************************
++++*******************#########################%#################%%%%######%%%%%%%%%%%########%#####%%%%##########%%%#####***************************
++++*******************##########################################%%%%%#####%%%%%%%%%%%%%%######%%####%%%%%%########%%%%####***************************
***********************##########################################%%%%#####%%%%%%%%%%%%%%%#######%%%%%%%%%%%########%%%%####***************************
***********************######################%###################%%%###%%%%%%%%%%%%%%%%%%#######%%%%%%%%%%%%%%####%%%%%%####**************************
**********************#####*#########%%%%####%###############%%%%%##%%%%%%%%%%%%%%%%%%%%%%####%%%%%%%%%%%%%%%%%##%%%%%%%%%##**********************++**
*********************####****########%%%%%#################%%%%%####%%%%%%%%%%%%%%%%%%%%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##*********************++**
*********************###*****########%%%%##########%%%%####%%%%%#####%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%#%%%%%%%##************************
*********************##******#########%%%##########%%%%%%##%%%#################%%%%%%%%%%%%%%%%%##%%%%%%%%%%%%%%%##%##%%%%%%##************************
********************##*******##########%%########################*###################%%%%%%%%%%%%##%%%%%%%%%%%%%%######%%%%%%##***********************
********************##******##################################*********##****#########%%%%%%%%%%%##%%%%%%%%%%%%%%#######%%%%%##***********************
*******************##*******##############%############*************************#########%%%%%%%%%##%#%%%%%%%%%%%########%%%%%##**********************
*******************##******########################***************+*******************####%%%%%%%%%###%%%%%%%%%%%########%%%%%%#**********************
******************###******#############%%#%######***********++++++++++++++++*+*********######%%%%%%#%%%%%%%%%%%%#########%%%%%##*********************
******************###******############%%%%%#####*********++++++++++++++++++++++++*******######%%%%%%%%%%%%%%%%%%%#####**#%%%%%%#*********************
******************###******############%%%%%#####*********++++++++++++++++++++++++++********#######%#####%%%%%%%%%%####**##%%%%%##********************
******************##*******#############%#%####*******++***++++++++++++++++++++++++++*********###########%%%%%%%%%%%###**##%%%%%%#********************
*****************###*******###################********+++++++++++++++++++++++++++++++***********##########%%%%%%%%%%###**##%%%%%%##*******************
*****************###*******##################*****+*+++++++++++++++++++++++++++++++++*****************#####%%%%%%%%%%##***#%%%%%%##*******************
*****************###*******#############*********++++++++++++++++++++++++++++++++++++*******************###%%%%%%%%%%##***#%%%%%%%#*******************
*****************###*******############*********+++++++++++++++++++++++++++++++++++++*******************###%%%%%%%%%%######%%%%%%%##******************
*****************###*******############********++++++++++++++++++++++++++++++++++++++++*+***************###%%%%%%%%%%%%###%%%%%%%%##******************
****************####*******####%#######*******++++++++++++++++++++++++++++++++++++++++++++*+***+*******####%%%%%%%%%%%%%%%%%%%%%%%##******************
****************####*******####%%######*****+++++++++++++++++++++++++++++++++++++++++++*++++++++*******####%%%%%%%%%%%%%%%%%%%%%%###******************
***************######******####%%######****++++++++++++++++++++++++++++++++++++++++++++*+++++++++******###%%%%%%%%%%%%%%%%%%%%%%%###******************
*******##****########*******###%#######****++++++++++++++++++++++++++++++++++++++++++++++++++++*+******##%%%%%%%%%%%%%%%%%%%%%%%####******************
###############%######******###%%######****++++++++++++++++++++++++++++++++++++++++++++++++++++*+******##%%%%%%%%%%%%%%%%%%%%%%%#####*****************
##############%%%########**###%%%######***++++++++++++++++++++++++++++++++++++++++++++++++++*++*+******###%%%%%%%%%%%%%%%%%%%%%%########*#************
##############%%%%####*****############***++++++++++++++++++++++++++++++++++++++++++++++++++*++*********###%%%%%%%%%%%%%%%%%%%%%%#####*#*##*##********
************##%#######****#############***++++++++++++++++++++++++++++++++++++++++++++++++++*++*********####%%%%%%%%%%%%%%%%%%%%%%###*********###*****
************####%%%%##***####%#########***++++++++++++++++++++++++++++++++++++++++++++++++++*************###%%%%%%%%%%%%%%%%%%%%%%%##*********###*****
*************#%%%%%%##***#%%%%#%#######***++++++++++++++++++++++++++++++++++++++++++++++++++*****++******###%%%%%%%%%%%%%%%%%%%%%%%###********###*****
*************#%%%%%%%#####%%###########***++++++++++++++++++++++++++++++++++++++++++++++++++++*++++*******###%%%%%%%%%%%%%%%%%%%%%%%###*****#####*****
*************#%%%##%%%%####%##########****++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*******###%%%%%%%%%%%%%%%%%%%%%%###############***
**************#****#%%%%%**###########****+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*******###%%%%%%%%%%%%%%%%%%%%%%###############**
*************+==--=*%%%%%++###########****+++++++++++++++++++++++++++++++++++++++++++++++++++*++**+++**+*****##%%%%%%%%%%%%%%%%%%%%%%################*
*************+-:.:-*#%#%#++###########****++++++++++++++++++++++++++++++++++++++++++++++**********************##%%%%%%%%%%%%%%%%%%%%%#################
*************+=::-=*##*##*+##########*****+++++++++++++++++++++++++++++++++++++++++++********#####*************#%%%%%%%%%%%%%%%%%%%%%%##########%#####
**************+===+*#*+*##*##########****+++++++++++++++++++++++++++++++++++++++********##############*********#%%%%%%%%%%%%%%%%%%%%%%##########%#####
####*########**++***#*++############****+++++++++++++*+++**+++++++++++++++++++*****#######%%%%%%%#######*******#%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%%%####
###############***###*+*#%%%%#######***+++++++++****************+++++++++++****#####%%%%%%%%%%%%#########******##%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%##%
#####################*+*#%%%%%######***+*++++***#############******************##%%%%%%%%%%##############******##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%
#################%%%%#*##%%%%%%%####*********#######%%%%%#######**************##%%%%%%%#####*####*****###******##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
################%%%%%###%%%%%%%%####*******#####%%%%%%%%%%%%%%###************###%%%%%#####***####******##******##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
############*##%%%%%%%%%%%%%%%%%####*****################%%%%%%%##***********############################******##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
****#######**##%%%%%%%%%%%%%%%%%%%##*****###################%%%%###**********###########################********#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
**************#%%%%%%%%%%%%%%%%%%%%#*****##########################***********#########%%%%%%%%%#######*********#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*************##%%%%%%%%%%%%%%%%%%%%#*****##########################***********#########%%%%%%%%########*********##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*************###%%%%%%%%%%%%%%%%%%%#*******#######%%%%%%%%%#########*********#############%%%#########**********##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
************####%%%%%%%%%%%%%%%%%%%#********####%%%%%%%%%%%#########*********##############%#########***********##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
************###%%%%%%%%%%%%%%%%%%%%##*******###%%#####%%%%##########*********#######################************##%%%%%%%%@@%%%@@%%%%%%%%%%%%%%%%%%%%%
************###%%%%#%%%%%%%%%%%%%%%##********###########%###########*********######################*************##%%%%%%%%@@@@@@@@@@%%%%%%%%%%%%%%%%%%
************##%%%%###%%%%%%%%%%%%%%##*********#####################***********#####*##############***************##%%%%%@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%
************##%%%%####%%%%%%%%%%%%%%##**+********##################***+++*****########*##########*****************#%%%%%@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%
*************#%%%%%####%%%%%%%%%%%%%##**+++******#################***+++++*****######***########******************#%%%%%@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%
**************#%%%%%%%%%%%%%%%%%%%%%#***++++++***################****++++++*******#*******************************##%%%%@%@@@@@@@@@@%%%%%%%%%%%%%%%%%%
**********+++*#%%%%%%%%%%%%%%%%%%%%%#**++++++++***##########********+++++++++*************************************##%%%%@%@@@@@@@@@@@%%%%%%%%%%%%%%%%%
*******+++++++#%%%%%%%%%%%%%%%%%%%%%#**+++++++++********************+++++++++*************************************##%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%
****++++======*#%%%%%%%%%%%%%%%%%%%%#**+++==+++++******************++++===+++**************************************#%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%
##*+++==-----=+*%%%%%%%%%%%%%%%%%%%%#**+++===++++******************+++====+++**************************************#%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%
#**+==-------=+*#%%%%%%%%%%%%%%%%%%%#**+++====++++*****************+++====++***************************************#%%%%@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%
#*+==--::--===+*#%%%%%%%%%%%%%%%%%%%#**+++====+++++*****************+======+***************************************#%%%%%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%
*++=--::--==+++*#%%%%%%%%%%%%%@%%%%%#**++++++++++++****************++==-==+++**************************************#%%%%%@@@@@@@@@%%%%%%%%%%%%%%%@%%%%
++==----==+++***##%%%%%%%%@@@@@@%%%%#**+++++++++++++***************+======++++************************************##%%%%%@@@@@@@@%%%%%%%%%%%%%%%%%%%%%
+====--==+****####%%%%%%%%@@@@@@%%%%%***++++++++++++***************+=-===+++++************************************##%%%@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%
*+++===++***######%%%%%%@@@@@@@%@%%%%#**+++++++++++++++++++++*****+=====++++++************************************##%%%%@@@@@@@@@%%%%%@%@@@@@@@@@@@@@@
**++++++***#######%%%%%%@@@@@@@%@@%%%#***++++++++++++++++++++****++====+++++++***********************************##%%%%@@@@@@@@@@%%%%@@@@@@@@@@@@@@@@@
##**+++***######%%%%%%%%%%@@@@@@@@%%%##**++++++++++++++++++++****+=====++++++++**********************************###%%%@@@%@@@@@@@@@%%%%%%%%%@@@@@@@%%
%##******####%%%%%%%%%%%%%@@@@@@@%%@%%#***+++++++++++++++++++***++===++++++++++*********************************####%%%@@@%%@@@@@@@@%%%%%%%%%%%%%%%%%%
%%##***#####%%%%%%%%%%%%%%@@@@@@@%%%%%##**++++++++++++++++++****+++=+++++++++++********************************####%%@@@@@%%@@@@@@@%%%%%%%%%%%%%%%%%%%
%%#########%%%%%%%%%%%%%%%@@@@@@@%%%%%%#**++++++++++++++*********++++++++++++*********************************#####%%@@@@@@@@%%@@@%%%%%%%%%%%%%%%%%%%%
%%%######%%%%%%%%%%%%%%%%%@@@@@@@%%%%%%#***+++++++++++***************+++++********##**************************#####%%@@@@@%@%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%####%%%%%%%%%%%%%%%%%%@@@@@@@%%%%%%##**+*******+***************************#####*************************######%%%%@@%%%%%%%%%%%%@%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@%%%%%%%%%#************************###*********######**************************######%%%%%%%%%%%%%%%%%%@@%%%@%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@%%%%%%%%%%#*************************####****#########*************************############%%%%%%%%%%%%%@%@@@@@@@@%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#************************#################*************************############%%%@%%%%%%%%%%@@@@@@@@@@%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%%%%%%%%#*************************################*************************############%%@%@@@@%%%%@%@@@@@@@@@@@%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%%%##************************#################***********************############%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@%%%%%%%#***********************############%%%#####********************############%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%@
%%%%%%%%%%%%%%%%%%%%%%@%@%%%@%%%@@@@@@@%%%##*********************#####%%####%%%%%%%#####*****************#############%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%@%%@@@@@@@@@@@@@@@@%###******************#####%%%%####%%%%%%%%######**************#############%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
%%%%%%%%%%%%%%%%%%%%%@@@%@@@@@@@@@@@@@@@@%%####***************######%%%%####%%%%%%%%%%######***********##############%%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@%
%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@%%#####***********###################%%%%##%%%######*******#*##############%%%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@%%%######*#****##############################%%%%#########*#################%%%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@%%%#######***###############################%%%%%########*#################%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@%%#######***################################%%%%%######***################%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@%%#######**#######%%###################%%#%%%%%%######***#############%###%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%@%%%%@@@@@@@@@@@@@@@@@@@@@@%%#######**######%%%%%%%%%###%%%%%%%%%%%%%%%%%%%%####################%%###%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
%%%%%%%%%%%%%%%%@%%%@@@@@@@@@@@@@@@@@@@@@@@@%#############%%%%%%%#####################%%%%%%####################%%###%%@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@%
%%%%%%%%%%%%%%%%@%@%@@@@@@@%@@@@@@@@@@@@@@@@%%############%%%%%%##############################################%%%####%%@@@@@@@@@@@@@@@@@@@@@@@@@@%@%%%
%%%%%%%%%%%%%%@%@%@%@@@@@%%%%@@@@@@@@@@@@@@@@%###########%%%%%################################################%%%###%%@@@@@@@@@@@@@@@@@@@@@@@@@@@%@%%%
%%%%%%%%%%%%@@@%%%%%%@@@@%%%%@@@@@@@@@@@@@@@@%%############################################################%%#%%%###%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%
%%%%%%%%%%%%%%%%%%%%%%%@%%%%%@@@@@@@@@@@@@@@@@%%###########################################################%%%%%%##%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@%%#######################%%%%%%%%%%##########################%%%%%##%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@%%####################%%%%%%%%%%%%%%######################%%%%%%%#%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%
%%%%%%%%%%%%%%%%%@@@%%%%%%%%%%@@@@@@@@@@@@@@@@@@%%#################%%%%%%%%%%%%%%%%##################%%%%%%%%%%#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@
%%%%%%%%%%%%%%%@@@@@@%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%###############%%%%%%%%%%%%%%%#################%%%%%%%%%%%%#%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#%%%%%%%@@@@@@@@@@@@@%%%%%%%%%@@@@@@%@@@@@%@@@@@%%%%%################%%%%%%%%%%%%################%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#%%%%%%@@@@@@@@@@@@@@%%%%%%%%%@@@@@%%%@@%%%@@@@@%%%%%%%%%%#####################################%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#%%%%%%@@@@@@@@@@@@@@%%%%%%%%%@@@@%%%%@@%%%%@@@@%%%%%%%%%%####################################%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%@@%%%%@@@%%%%%%%%%%%%###################################%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%@%%%%%%%%%%%%%%%###############################%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%%%%%%%%%%############################%%%%%%%%%%%%%%%%%%%%#%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####%%%%%%%%%%%%%%##############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%%%%%%%%%%#***#%%%%%%%%%%%%%%###########%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%%##%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@%%%%%%%%%%%@%%%#**###%%%%%%%%%%%%%%%%%%####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@%%%%%%%%%%@@@@%%#**##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%%%%%%%%%@@@%%####%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@%%%%%%%%%%@@@@@@%####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@%%%%%%%%@@@%%####%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@%%%%%%%@@@@%%####%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@%%%%%%%%%%%%@@@@@@@@@@%%%%%%%%@@@@@@@@@@@@@%%%%%@@@@@@@@@%%%%%%%%%@@%%%####%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%@@@%%%####%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%@@@%%#####%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%@@@@%%%######%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%@@@@@%%#######%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%@@@@%%%%#######%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%@@@@%%%%#######%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@%%%%@@@@@@%%%%#########%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%###########%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%#########%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%#####%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%####%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                            
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%@@%%%%%%%%%%%@@%%%%%%%%%@@%%%%%%%%%@@@%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%@@%%%%%%%%%%%@@%%%%%%%%%@@%%%%%%%%%@@@%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%@@%%%%%%%%%%%@@%%%%%%%%%@@%%%%%%%%%@@@%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@%%%%%%@@%%%%%%%%%%%@%%%%%%%%%%@@%%%%%%%%%@@@%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%@@@@@@@@@@@@@@@@@@@@%%@@%%%%%%%%%%%@%%%%%%%%%%@@%%%%%%%%%@@@%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%@%@@@@@@@@@@@@@@@@@%@@%%%%%%%%%%%@%%%%%%%%%%@@%%%%%%%%%@@@%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%##%%@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%@%%%%%%%%%%@@%%%%%%%%%@@@%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@@@@@@@@%%%@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%@%%%%%%%%%%@@%%%%%%%%%@@@%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%@@@@@@%@@@@@%%%@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%@%%%%%%%#%%@@%%%%%%%%%@@%%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%@@@%%%@@@@@@%%%@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%@%%%%%%%%%%@@%%%%%%%%%%%%%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@@@@@@@@@%%%@%%@@@@%@@@@@@@@@@@@@@@%%%##%%@%%%%%%%%%%@@%%%%%%%%%%%%%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@%%@@@@@@@@@@@@@@%%%%%%@@@%@@@@@@@@@@@@@@@@@%%#%%@%%%%%%%%%%@@%%%%%%%%%%%%%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@@@@%#*#%%%%%@@@@@@@@@@@@@@@@@@@%%%%@%%%%%%%#%%@@%%%%%%%%%%%%%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#%%@@@@@@@@%%##%%%%@@@@@@@%%@@@@@@@@@@@%%@@%%%%%%##%%@@%#%%%%%%%%%%%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%##%%@@@@@@@@@%%#%@%%%@@@@@@%%@@@@@@@@@@@@%@@%%#%%%%#%%@@%#%%%%%%%%%%%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%##%%%@@@@%%%%%%%%@@@%@@@@@@@%@@@@@@@@@@@@@@@%%##%%%#%%@@%###%%%%%%%%%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@@@@@@@@##%%%%%@@@%%%#%@@@@%%%@@@@@@@@@@@@@@@@@@@@@@@%%#%%%%#%@@@%###%%%%%%%#%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@@@@@@@@%#%@@%%%@@%%%%#%@@@@%%@@@@@@@@@@@@@@@@@@@@@@@@%#%%#%%#%%@%####%%%%%%%#%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@%%@@@@@@@@%*#%%%%@@%%%@@%%@@@@%#%@@@@@%%%%@@@@@@@@@@@@@@%##%####%%@%####%%%#%%%#%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%@@@@@@%%@@@@@@@%##@@@@@%**%%%%%%@@@@@@@@@%%#%####%@@%#####%%#%%%#%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@%%%%@@@@@%%%@@@@@@@%##%@@@@%*#%#%%%%@@@@@@@@@%%######%@@%########%%%#%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@%%%%@@@@@@%%%%@@@%#*#%@@@@@@@%%%@@%%%%%%%%%#%@@@@@@@@@%####%##%@@%########%%%#%@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@%%%%%%@@%##%%##%@@%%###%%%@@@@@@%##%%@@@@@%%%%%@@@%@@@@@%%###%##%@@%########%%###@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%#%#%@@@@@@@@@@@@%%%%%%@@#**##**%@@%%##%%%%@@@@@@####@@@@@@@@%%%%@%%%@@@@%%###%##%@@%########%####@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%@%*****#%@@@%%#####%%%@%#####%@@@@@@%#%%%%%%%%@@@@%###%##%@@%#############@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@%#%%#%@%###****%@@@@@##****##%#**#%#%%@%%@%#*%%%%@%%%%@@@%%#####%@@%#############%@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@##%%#%%%###****%@@@@@%#******#*+*%%###%%%%##*%@%%%%%%%@@@%%#####%@@%#######%####%%@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@%%%%######*####*++*#%%@@%%##+++++++**%%##*#####*#%@%%%%%%%@@@%%#####%@@%#######%####%%@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@%%@@%%%%####*******++==+++*##***+=====-+++*###*##%%%##@@%%%#%%%%@@%%#####%@%%#########%##%%@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@%%%%%%#%%###*++++++++-----==***+==------===+*####%%%%%%@@#%%#%%%@@@%%#####%@%%#########%###%@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%#%%%###**+=----===-:::..:=+*+--:::....:--==+*####**#%@%##*#%%%@@@%%#####%@%%#############%%@@@@@@@%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%%@%%%###%%#**+=-::...::.....  .-++=:....   .....::--===-=+####**#%%%%@@@%#####%@%%###############%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%####%#**+=-::......       ..-=-. .         ...:::----=+*****#%%%%@@@%#####%@%%########################%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%@%%#**##**+=-::....             .             ...::::----===+*#%%%%%%@@@#####%@%%#################%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%@%%#****++=-::.....                           ...:::::------=*#%%%%#%@@@#####%@%%################%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%%@@%#***+++--::....                             ...:::::-----=+#%%%%#%@@@####%%@%%#################%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@%%#**+++=--::...                              ....::::-----=+#%%%%%%@@@####%%@%###################%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@%%#*+++==-::....                               ....:::-----=+#%%%%%%%@@%###%%@%###############%###%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%@@@@@@@%##*++==---:....                               .....::-----=+#%%%%#%%@@%###%%@%###################%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%@@@@@@%%#*++==---::...                                 ....::----=*#%%%%%%@@@%###%%@%###################%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####%%%#+++==--:::..                                   ....:----=*#%%%%%%@@@%###%%@%#####################%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####%%%#++===--::...                                   ....::---=+#%%%%%%@@@%###%%@%#####################%%%%%%%%
@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%%%%%%%#+====-::....                                   .....::--=+*%%%%%%@@@%%%#%%@%#####################%%%%%%%%
@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%%%%%#+===--::....                                   ......:--=+*#%%%%%@%%%@@%%%@%#####################%%%%%%%%
@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@%%#+===--::....                                   ......:--=+**#%%%%%#*#@@@%@@%#####################%%%%%%%%
@@@@@@@@%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@%%#*+==--::....                                   .. ...::-=+*+*#%%%#==+%@@@@@%%%###################%%%%%%%%
@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*+=--:::...                                    .. ...:::-++++*%%%+--=#%@@@@@@%%##################%%%%%%%%
@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%##########%%%#*=--:::...                                   .......:::-=+++*%%#=--=#%@@@@@@@%%%%%##############%%%%%%%%
@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%####%#%%%%#*=--::::...                                  .....::----==+++#%#----#@@@@@@@@@@@@@@%%%########%%#%%%%%%%
@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%%*=--::::..                                  ..::----===--=+++*#*----#@@@@@@@@@@@@@@@@@%###%%######%%%%%%
@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%%#=---:::..                                 .::-==++++*++===++**+-==-#@@@@@@@@@@@@@@@@@%%#########%%%%%%%
@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%#########%%%+=-::::..                              .:-=++****#**###+===+*#*====%@@@@@@@@@@@@@@@@@@%#########%%%%%%%
@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%#######%@%+=-::::..                             .-+**#*++=====++***+==+#*=-=+%@@@@@@@@@@@@@@@@@@@%###%%%%%%%%%%%%
%%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%##############%#+=-::.....                         ..:-+*#*++=-:::::-==**+==+#*=:-#@@@@@@@@@@@@@@@@@@@@%#####%%%%%%%%%%
@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#*##*=--::::...                      .-=++**++-:........::-=+===+#*:.:#@@@@@@@@@@@@@@@@@@@@%########%%%%%%%
@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@%+##*====--::......                 .-+*#*+-:...:::::....::--===+#*. :#@@@@@@@@@@@@@@@@@@@@@%#######%%%%%%%
@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@%+*#*+++++==--:::::.               .:-***=-:..:-===--::....:-=--+#*. :#@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%#%%%%%
@@@@@@@@@@%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@#***######****++===-:..           .:=+=:..:=++++*==++=-:...:---+**-.:#@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%##
@@@@@@@@@@%%%%%%%%%%##%@@@@@@@@@@@@@@@@@@@@@%+=%%%####***###**#**=-:.         .:-::.::-=++--+-.-*#=:..::---+**+:-#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%
@@@@@@@@@@%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@++%%%#*+++=++*******+=-:.        .:::..----=+::+:.-**=:..:::--+**+-=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%
@@@@@@@@@@@%%%@%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@####*=-:::::--=====++==:..       .::::-=-..:++++-:-==-:...::--+**=-=%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@%%%@@@@@@@@@@@@@@@@@@@@@@@@@%#**+-::-+++**+==+=-----:.       .::::---:::-=----:-::....::--+*+=-+%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@%#*+=-:-+**+##*==+-:::---:       :::..::--::-::::::::.. ..::--+*+=-+%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*+=--=*+-:+*+===..:-----.     .:--....::::.........  ...::--=**=-=%@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@
@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*+=--=*=-:-=+++-:.:--:--.     .:-:...::::...   .     ...:::-=**+-+%@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@
@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*==--=+=-:-=++=-::::::--:    ..:-:.........           ..:::-=**+=+%@@@@@@@@@@@@@@%%@@@@@@@@@@@@@@@@@@@@
@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*=-:--====----::.....:--.    ..::::..                 ...:--=**+=+@@@@@@@@@@@@@@@@%%@@@@@@@@@@@@@@@@@@@
@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*=-::::----::........:=-.     .:-::.                  ...:-=+**+=+%@@@@@@@@@@@@@@@%%@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@%*=-...::::::.  ......:--.     .:::...                ....:-=++**+*%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%@%#+-:::........     ..:--.      :::...               .....:-=++*###%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%#=-::.....          .:--:.     :::...              ......:-=++*#%%%%%@@%@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%+--:.....          .---:.    .:::...              ....:::-=++*%@@%%%%%%@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%*=-::....         ..---:     ..::...              ...:::-==++*%%%%%%%%%%%@@%@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%#+-:::...          .---:.    ..:::..               ..:::-==++*%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%*-::::..          .---:.    ..::::.              ..::::-=+++*%%%%%%%%%%%%%%@@@@@@@@@%@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%@#=-:::..          .:==:.     .:---:              ..::::-=+++*%%%%%%%%%%%%%%@@@@@@@@@%%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%####%%#%%@%+---::..         .:==:.     ..:-=:.            ..:::--=++++*%%#%%%%#%%%%%%%@@@@@@@%%%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%###########%@@*=--::...        .-==:.     ..:-=-:.          ..::::--=++++*%########%##%%%@@@@@@@%%%%%%@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%##############@@%+---::..        .-=-:.      ..---:.          ...:::-==++++*%###########%%%@@@@@@@%%%%%%%%@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%###############%@@+=---:...       .---:.       .:-:-:          ...::--=++++*#%###########%%%%@@@@@@%%%%%%%%%@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%################%@@#+=--::..      .:--:.        .:::--          ...::-==++++*#%############%%%@@@@@@%%%%%%%%%%@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%#################%@@%#+=--::..     .:-::.         .:--:          ...:--==++++*#%#**####*####%%@@@@@@@%%%%%%%%%%%%@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%########***#######%%@@%+=--::....   .:-:..         .:-:.         ....:--=++++*##%##********##%%@@@@@@%%%%%%%%%%%%%%%%@@@
@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%########******####%%@@@*==--::..     :-:..        .:-::.         ...::-==++++*#####*********#%%@@@@@@%%%%%%%%%%%%%%%%%@@
@@@@@@@@@@@@@@@@@@@@@@@%%%%%%########*******#####%@@@#*+--::...    .:::.       .::-:..        ....::-==++++*####**********#%%@@@@@@%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@%%%%%#######***********###%@@@%*+=--:...     .:-:.    .::::....        ....::-==+++**##%#**********#%%@@@@@@%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@%%%%%########************##%@@@%#*=--:...      :--:.. ..::......     . .....::-=+++****#%***********#%%@@@@@@%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@%%%%######***************##%@@@@##+=-::..      .::::::::.....:..............:--=+++*****#*+++*++****#%%@@@@@@%%%#%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@%%%%%####*****************##%@@@@%%*=-::...    ..:::::........:::....::......:-==+++**++*#*++********#%%@@@@@@%%%########%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@%%%%#####*****************##%@@@@%%*+=-::..   ..:::::.........:::....::......:-==+++**++*#*+*********#%%@@@@@@%%%#########%%%%%%%
@@@@@@@@@@@@@@@@@@@@%%%%#####******************###@@@@%%#*+-:::.....:::::::::..........:.:.::.....:-==++**+=+*#***********#%@@@@@@@%###############%%%
@@@@@@@@@@@@@@@@@@@@%%%%#####******************##%@@@@%%#**=-::....:::::::......   ...::--::::. ..:===++*+==+*#####*******#%@@@@@@%%################%%
@@@@@@@@@@@@@@@@@@@@%%%#####********************#%@@@@%%##*=-:::.:::::::::.       ..:::----:::....-===+**=-=++########**###%@@@@@@%%#################%
%@@@@@@@@@@@@@@@@@@%%%%#####*******************##%@@@@%%##*+-:::::::::::....    .:::-===---::....:-==+**=--=++****#%@%%%#%%%@@@@@@%%#################%
%%@@@@@@@@@@@@@@@@%%%%%####********************###@@@@@%##**=-:--::::--:::::...:----===-::::....::-=++*+---==+**++*#@@%%%%%%%@@@@@%%#################%
%@@@@@@@@@@@@@@@@@%%%%#####*******************####@@@@@%%###=-:--::---------:::----==+=::::.....::-=++*+---==+**+++*%@%%%%@%%%@@@%%##################%
@@@@@@%@@@@@@@@@@%%%%#####*********************##%@@@@@%%%%%+=-:::---===++==------====-::::....::-==++=-:--==+*+++=+%@%%%%%%%%@@##*##################%
@@@@@@%%@@@@@@@@@%%%%#####*********************##%@@@@@@%%%%#*-:::----===============-:--::....::-==++-::--==+*++==+%@@%%%%%%@@@#*+****###############
@@@@@%%%@@@@@@@@@%%%%####*********************###%@@@@@%%%%%%#=:::::--===========----::--::....:--=+++:.:--==+*+==-=#@@%%%%%%@@@%+=+++***#############
%%%%%%%%@@@@@@@@@%%%####***********************##%@@@@@%%%%%%%+-::::---=====---:::::::---::....:-=+*+-:::---=+++==-=*%@%%%%%%%@@%+=++++++***##########
@%%%%%@@@@@@@@@@@%%%####************************#%@@@%%%%%%%@%#=--:::------::.....::-----:.....:-=+*+::::---=+++=---+%@%%%%%%%%@%+====++++++***#######
@%%%%%@@@@@@@@@@%%%%###*************************#%%%%%%%%%%%%%%+---:-------::...:::-----::..:..:=+++=::::---==++=---=%@%%%%%%%%@%*=-====+++++***#####%
%%%%%%@@@@@@@@@@%%%%###************************###***%%%%%%%%%%+=---------------=-----:::.....:-+++-:::::---==+==----#@%%%%%%%%@%#+---====+++++***###%
%%#%%%@@@@@@@@@%%%%####*******************####**++++*%%%%%%%%@%*==----------=====--::::.......:=**=:.::::---=====----*%%%%%%%%%%@%#------===+++++***##
%%#%%%@@@@@@@@@@%%%###*******************###***+===+#%%%%%%%%%%+=+-:-:::-------=-:::.........:-+*+-..:::::--======---*#@%%%%%%%%@@#-:-----===++++****#
%%%%%@@@@@@@@@@@%%%##*******************#***+===---#%%%%%%%%@%#+=*=-:::::::::........... ..::-=+=-:..:::::---====----=*%%%%%%%%%@@%=::-----===+++++***
%%%%%@@@@@@@@@@%%%###*******+*****####***++==----:-#@%%%%%%%@%#==*+=::............ ....  .::-=++-.....:::::---===---:-+%%%%%%%%%%@%*-:-----====++++++*
%%%#%@@@@@@@@@@%%%###***********#*###**++===----::-#@%%%%%%%@%*==*++-:........... .....  .::-++=......:::::---===---:-+%@%%%%%%%%@@#-::----====+++++**
%%%%%@@@@@@@@@@%%%###**#######*****++++===---:::.:=%@%%%%%%%@%*==+++=-:..................:--=+=:......:::::----=----::=%%%%%%%%%%@@#=:---=====++++****
%%%%%@@@@@@@@@@%%%#############****+++====--:::: .*%@%%%%%%%@%+==++++=-:...............::-=++-:.........::::---------:=%@%%%%%%%%%@%+---====+++*******
%%%%%@@@@@@@@@%%%################***+++===---::. :#@@%%%%%%%@%+==+++++=-:............:::-=++=:.........:::::---------:=#@@%%%%%%%%@%*=-==++++++*******
%%%%%@@@%%%%%%%################*#*###**+===---::.-%@%%%%%%%%@%===++===+=--:::...::::::-==+=-:..........:::::----=-----=#@@%%%%%%%%@@#*++++++++***+++++
%%%%%%##############%%%####*************+=====---+%%%%%%%%%%@#==++=====+++---::::-----+++-:.............::::---======-=*%@%%%%%%%%%@%#+++++++**+++++++
%%%%%#*******######%%%##******++++++++***+======+*%%%%%%%%%%@#==+====--=++===-----==-=++=:..............::::---========*%@%%%%%%%%%@@%+====++++++++==+
%%###********#########****+++++++++++++++++==+++#%%%%%%%%%%%%#==++===----======-=====--::................:::---====++=+*%@%%%%%%%%%%@%+====+++++======
##*************###*****++++++++===++===++**+--=+%@%%%%%%%%%%%#++++===---:::::::::::::....................:::---===+++++*%@%%%%%%%%%%@%+--=+++==+======
******++++***********++++++=============++*+---+%@%%%%%%%%%%%#+**+===---::....::..........................::----===++++*%@%%%%%%%%%%@%*--=+++==+======
*****++++++++++++++++++=================++*+-:-*%@%%%%%%%%%%##*+++===---:::...............................::----====++++%%%%%%%%%%%%@%#=-=+++++=======
**++++++++++++++++======================++++-.:#@%%%%%%%%%%%#*+++===----::...............................:::-----======+#%%%%%%%%%%%@%#+=+++++========
+++++++++==++++============-===========+++++=:-%@%%%%%%%%%%%*++++====---::.::............................:::-----=======#%%%%%%%%%%%@@%+=+++==========
++++++================---------========+++*++=+%%%%%%%%%%%%%*+========---:::::..........................:::-------==---=#%%%%%%%%%%%%%%*++++==========
+++==============------------------=====+++**##@%%%%%%%%%%%%+=========----::::........................:::::-------------*%%%%%%%%%%%%%%#*+++==========
++=============--------------------=====+++**%%%%%%%%%%%%%%%=--=======-----::::......................::::::-------------*#%%%%%%%%%%@%%%*+++==========
+===========-----------------------======+++*%%%%%%%%%%%%%%#=---------------:::.....................::::::::----------:-+#%%%%%%%%%%%%%%#+============
=========------------:--:::::-------=======+#%%%%%%%%%%%%%%#-:--------------:::::.................::::::::::---------::-+#%%%%%%%%%%%%%%#+============
========------------:::-::::::::------=====+#%%%%%%%%%%%%%%*-:-----:::::::::::::.................:::::::::::::------:::-+#%%%%%%%%%%%%@%%+============
======-----------:::::::::::::---------====+%%%%%%%%%%%%%%%*-:-:::::::::::::::::...............:::::::::::::::::::::::::+*%%%%%%%%%%%%%@%*============
===-------------:::::::::::::------------=+*%%%%%%%%%%%%%@%+-::::::::::::::::::::::...........:::::::::::::::::::::::::-=*%%%%%%%%%%%%%@%*============
===-----------:::::::::::::::------------=*#%%%#%%%%%%%%%@%=::::::::::::::::::::::::.......::::::::::::::::::::::::::::-=*%%%%%%%%%%%%%@%#=-==========
==-----------::::::::::::::::----:-------=#%%%##%%%%%%%%%@%=::::::::::::::::::::::::::::::::::::::::::::::::::::::----:-=*%%%%%%%%%%%%%%%#+===========
=-----------::::::::::::::::::---:::---:-+%@%%##%%%%%%%%%@#-::::::::.....::::::::::::::::::::::::::::::::::::::::-------=*%%%%%%%%%%%%%%@%+===========
-----------::::::::::::::::--:---:::::::-*%%%%%%%%%%%%%%%@#-::::::::....:::::::::::::::::::::::::::::::::::::::::-------=*%%%%%%%%%%%%%%@%*===========
-----------::::::::::..:::-----:::::::::=#%%%%%%%%%%%%%%%@#-:::::::::....::::::::::::::::::::::-:::::::::::::::---------=*%%%%%%%%%%%%%%%%#*=-----===-
-----------::::::::::..:::-----::::::::-+%%%%%%%%%%%%%%%%%#:::::::::::...:::::::::::::::::::-::-:::::::--::-------------=*%%%%%%%%%%%%%%%%%#=------==-
------------:::::::::..:::------:::::::+*%%%%%%%%%%%%%%%%%#:::::::.::::.:::::::::::::::::::----:::::::---::-------------=*%%%%%%%%%%%%%%%%@#=------==-
------------:::::::::..:::-=--:::::::::*%%%%%%%%%%%%%%%%%%#:::::::.:::::.::::::::::::::::::-----:::::----::-------------=*%%%%%%%%%%%%%%%%@%+------==-
-------------:::::::::::::-==:::::::.:=%@%##%%%#%%%%%%#%%%#:::::::::::::::::::::::::::::::-----::::-------::------------=*%%%%%%%%%%%%%%%%@%*------=--
=------------:::::::::::::-==::::::..:+%%%#%%%##%%%%%%#%%@#::::::::::::::::::::::::::::::------:::--------:-------------=*%%%%%%%%%%%%%%%%%%#=-----=--
==---------------:::::::::-=--:::....:#%%%#%%%%#%%%%%%%%%@#-:::::::::::::::::::::::::::::-------------------------------=*%%%%%%%%%%%%%%%%%@%+--------
===---------------:::::::-==--:::...:=%%%%#%%%%%%%%%%%%%%@#-:::::::::::::::::::::::::::::---:-------------------------:-+*%%%%%%%%%%%%%%%%@@%+=-------
===----------------:----:-==--::....-+%%%%%%##%%%%%%%%%%%@#-:::::::::::::::::::::::::::::---::------------------------:-+#%%%%%%%%%%%%%%%%%@%#+-------
======--------------------==--::...:*#%%%%%%##%%%%%%%##%%@#-::::::::::::::::::::::::::::------------------------------:-*#%%%%%%%%%%%%%%%%%%%%*------=
=============------------===--:....-#@%##%%%%%%%%%%%%###%@#=:.::::::::::::::::::::::::::------------------------------:-*%%%%%%%%%%%%%%%%%%%%@%=-:---=
===============----------===--:...:+%@%##%%##%%%%%%%%###%@%=:.::::::::::::::::::::::--:::-------:---------------------:-*%%%%%%%%%%%%%%%%%%%%@%+-::--=
++========-=====-=---=====+=-:::..-#%%%%%%%%###%%%%%%%##%%%*:.:::::::::::::::::::::-::-::----::-:---------------------:-#@%%%%%%%%%%%%%%%%%%%@%#-::--=
+++===============---====++=-::::-+%%%#%%%%%%##%%%%%%%%#%%%*-.:::::::::::::::::::::-::-::-:::::----::-------::-------::-#@%%%%%%%%%%%%%%%%%%%%@%=:::--
+++=================-===+++--::::=*%%%#%%%%%%#%%%%%%%%%%%%%#-::::::::::::::::::::::::::::-::::::---::-------::::::--:::=#@%%%%%%%%%%%%%%%%%%%%@%+-::--
++++================-===*+=---:::*%%%%#%%%%%%%%%%%%%%%%%%%%%=:::::::::::::::::::::::::-::-::::::---::-------:::-::--::-+%@%%%%%%%%%%%%%%%%%%%%%@#+::--
                            
%%%%@@@@%%%%%%%%%%###############################*******************************************************************************########%%%%%%%%%
%%%%@@@@%%%%%%%%%%##############################*********************************************************************************########%%%%%%%%
%%%%@@@@@%%%%%%%%%##############################**********************************************************************************########%%%%%%%
%%%%@@@@%%%%%%%%%%#############################**********************************************************************************#########%%%%%%%
%%%%@@@%%%%%%%%%%%#%###################**##***************************************************************************************########%%%%%%%
%%%%@@@%%%%%%%%%%%#####################********************************************************************************************########%%%%%%
%%%%@@@%%%%%%%%%%######################********************************************************************************************#######%%%%%%%
%%%%@@@%%%%%%%%%%%#####################*******************************************************+++****+++*********##***************########%%%%%%%
%%%%@@@%%%%%%%%%%%#####################**********************************************++++++++++++**+++++*********##**#######******#########%%%%%%
%%%%@@@%%%%%%%%%%%%#################*********************************************+++++++++++++++***+++*************###############*########%%%%%%
%%%%@@@%%%%%%%%%%%%################*********************************************++++++++++++++++***++**************#########################%%%%%
%%%%@@@%%%%%%%%%%%%%###############********************************************++++++++++++++++++**++*************######%%%%################%%%%%
%%%%@@@%%%%%%%%%%%%%##############*******************************************++++++++++++++++++++***************#####%%%%%%%%%%#############%%%%%
%%%%@@@%%%%%%%%%%%%################****************************************+++++++++++++++++++++++********###########%%%%%%%%%%%#############%%%%
%%%%%@@%%%%%%%%%%%%###############***************************************+++++++++++++++++++++++*********#########%%%%%%%%%%%%%%%#####**#####%%%%
%%%%%%@@%%%%%%%%%%%################***********************+++**++++*****++++++++++++++++++++++********#######%%%%%%%%%%%%%%%%%%%%%%%#########%%%%
%%%%%%@@@%%%%%%%%%%%##################*****************+++++++*++++++++++++++++++++++++++++********#########%%%%%%%%%%%%%%####%%%%%%%###*####%%%%
%%%%%%@@@%%%%%%%%%%%%%%################****************+++++++++++++++++++++++++++++++++*******########%%%%%%%%%%%%%###########%%%%%%%###*####%%%
%%%%%%@@@%%%%%%%%%%%%%%%%%###############**************++++++++++++++++++++++++++++++++******######%%%%%%%%%%%%%%%###############%%%%%%##*####%%%
%%%%%%@@@%%%%%%%%%%%%%%%%%%%##############***************+++++++++++++++++++++++++++++*****#####%%%%%%%%%%%%%%%%####*******#########%%%#######%%%
%%%%%%@@@%%%%%%%%%%%%%%%%%%%%###############**#**********++++++**++++++++++++++++++++***######%%%%%%%%%%%%%%%###****************#####%%#######%%%
%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%################*****#****+++++**++++++++++++++++++****#######%%%%%%%%%%%%%###*******************####%%########%%
%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##############****+++++++++++++++++++++++*****######%%%%%%%%%#####************************###%########%%
%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%########****++++++*+++++++++++++++******#####%%%%%%%######****+++********************###########%%
%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####*******++***++++++++++++++******#####%%%########******+++********************############%
%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####***********+++++++++++++++*****###############*******************************######**###%
%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@%%%%%%%%%%%%%#####**********+++++++++++++++*****##########****************##**####************######**###%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%%%%%%%%%%%%%%#####*********+++++++++++++++******########***************###########***********###########%
%%%%%%%%%%%%%%%%%%%%%%%%%%%#####%%%%%%%%%%%%%%%%%%%%%%%%###*********++*+++++++++++******#####*************##################**********##########%
%%%%%%%%%%%%%%%%%%%%#############****######%%%%%%%%%###%###***************++++++++******###***++*******##########**#***#######************######%
%%%%%%%%%%%%%%%%%%%%#######***************#######%%%%%%%####***************+++++++************+****###########%%##############************##**##%
%%%%%%%%%%%%%%%%%%%%%#######***##***********#######%%%%%#####**************+++++++*****************#######%%%%%%%%%############***********##**##%
%%%%%%%%%%%%%%%%%%%%################********##########%%%#####**************++++++***************####%%%%%%%%%%%%%%####%%%#####************#####%
%%%%%%%%%%%%%%%%%%############################################*****************+++*************#####%%%%%%%%%%%%%%##*##%%%%####*****+++****#####%
%%%%%%%%%%%%%%%%%###########%%%%################################****************++************####%%%%%%%%%##%%%%%##***#%%%%####****+++****#####%
%%%%%%%%%%%%%%%%%#######%%%%%%%%%%%%%%%##%%%%#########################***********************####%%#####%%######%##*+++*#%%%####*****++*******##%
%%%%%%%%%%%%%%%%########%%%%%%%%%%%%%%%%%%%%%%%%########################********************############%%%%%######*+++*##%%%####*************###
%%%%%%%%%%%%%%%%######%%%%%%%%%%%%%%%%%%%%%%%%%%########%%##############***##*********#***#########***##%%%%%#######+++*##%%%####*************###
%%%%%%%%%%%%%%%#######%%%%%%%%%##%%%%%%%%%%%%%###%%%####%%%%%##########*******************#########***##%%%%%#######***##%%%#####*************###
%%%%%%%%%%%%%%%######%%%%%%%%#####%%%%%%%%%%%%###########%%%%%#########***************#**###############%%%#########*#############************###
%%%%%%%%%%%%%%%######%%%%%%%%#####%%%%%%%###%%###########%%%%%#########***#**********##################%%%#########################***********###
%%%%%%%%@%%%%%%######%%%%%%%%##*##%%%%%%%###%%#**###%%%##%%%%%%############***##*****#################%%%##########################**********####
%%%%%%%%%%%%%%%######%%%%%%%%######%%%%%%%%%%%#*####%%%%%%%%%%############%#####*****###############%%%%%%#########################**********####
%%%%%%%%%%%%%%%######%%%%%%%%######%%%%%%%%%%%######%%%%%%%%%%################*******###############%%#############################**********####
%%%%%%%%%%%%%%%######%%%%%%%%%#####%%%%%%%%%%%%##%%%%%####%%%%#############***********#############################################***********###
%%%%%%%%%%%%%%%%####%%%%%%%%%%%###%%%%%%%%%%%%############%%%%#########***************###########################*******###########**********####
%%%%%%%%%%%%%%%%####%%%%%%%%%%%%%%%%%%%%%%%%%#############%%%%#########***************##############********************###########***********###
%%%%%%%%%%%%%%%%####%%%%%%%%%%%%%%%%%%%%%#################%%%%#########***************#############********************############***********###
%%%%%%%%%%%%%%%%####%%%%%%%%%%%%%##%%%%%#############%%%%%%%%%##########**************##################***************###########************###
%%%%%%%%%%%%%%%#####%%%%%%%%%%%######################%%%%%%%%%###########*************#####################****#################**************###
%%%%%%%%%%%%%%%####%%%%%%%%%%%%#####################%%%%%%%%#############*************##########################################**************###
%%%%%%%%%%%%%%#####%%%%%%%%%########################%%%%%%%####%%########**###********####################################********************###
%%%%%%%%%%%%%%%######%%%%%%%#######################%%%%%%%%###%%############************##****###########################*********************###
%%%%%%%%%%%%%%%%%########%%%%#####################%%%%%%%%%%%%%%############*********************####################*************************###
%%%%%%%%%%%%%%%%%#######%%%%#######################%%%%##%%%%%%%######*#####**********************##################**************************###
%%%%%%%%%%%%%%%%%#######%%%#########################%######%%%%#######*#####***********************###############****************************###
%%%%%%%%%%%%%%%%%#######%%#################################%%%##############***********************#######***###******************************###
%%%%%%%%%%%%%%%%###########################################%%%#############*******************************************************************###
%%%%%%%%%%%%%%%%#%%#######################################%##############****************+****************************************************###
%%%%%%%%%%%%%%%%%#####################################################******************+++******************************++++******++*********###
%%%%%%%%%%%%%%%%%#########################################%###########******************++++**************************++++++++**++*++*********###
%%%%%%%%%%%%%%%%#####################################################*******************++++************************+++++++++++++++++*********###
%%%%%%%%%%%%%%%%##########################################%##########******************++++++**********************++++++++++++++++++*********###
%%%%%%%%%%%%%%%%##########################################%##########******************+++++++******++*++++++++++++++++++++++++++++++*********###
%%%%%%%%%%%%%%%%#########################################%%##########******++++++++****+++++*+++***++++++++++++++++++++++++++++*++++++********###
%%%%%%%%%%%%%%%%#####################*****#############%%%%#########******++++++++++++**+++***++++++++++++++++++++++++++++++++++***++++*******###
%%%%%%%%%%%%%%%%####################*******#####*######%%%%#########******++++++++++++***+****+++++++++++++++++++++++++++++++++++**++++*******###
%%%%%%%%%%%%%%%%#################****************######%%%#########******+++++++++++++********+++++++++++++++++++++++++++++++++++***+++*******###
%%%%%%%%%%%%%%%%#################*****************#####%%%#########******+++++++++++++********+++++++++++++++++++++++++++++++++++***+++*******###
%%%%%%%%%%%%%%%%#################*****************####%%%%#########*****++++++++++++++********+++++++++++++===+++++++++++++++++++**++++*******###
%%%%%%%%%%%%%%%%%%################****************####%%#########******++++++++++++++++*******++++++++++++=========++++++++++++++++++++*******###
%%%%%%%%%%%%%%%%%################***********+******#############*******+++++====+++++++*******++++++++++++==========+++++++++++++++++++******####
%%%%%%%%%%%%%%%%%##############************++******############*******+++++==========+++******++++++++++++==========+++++++++++++++++++******####
%%%%%%%%%%%%%%%%%%#############********************###%%%%#####***++++++++===========++++++***+++++++++++==============+++++++++++++++++*****####
%%%%%%%%%%%%%%%%%%%#############*******************####%######***+++++++======--=====++++++++++++++++++++=================+++++++++++++++***#####
%%%%%%%%%%%%%%%%%%#############********************##########****++++=======-----======+==+++++++++++++++=================++++++++++++++++**#####
%%%%%%%%%%%%%%%%%%############*********************##########***++++=======------==========+++++++++++++==================++++++++++++++++*######
%%%%%%%%%%%%%%%%%%############**********++++********########****++++=======-------==========++*++++++=========================+++++++++++**######
%%%%%%%%%%%%%%%%%%%###########*********++++++********#######***+++++======---------========++**+++++==========================++++++++++***######
%%%%%%%%%%%%%%%%%%%###########*********+++++++********#####****+++++======---------====+===+++++++++==========================+++++++++****######
%%%%%%%%%%%%%%%%%%%%############*********+++++********#####****+++++=========---======+++=+++++++++===========================++++++++****#######
%%%%%%%%%%%%%%%%%%%%############***********+++++*****#######****+++==================+++++++++++++++==========================++++++++***########
%%%%%%%%%%%%%%%%%%%%#############**********++++++****########***++++===============+++++++++++++++++==========================++++++++***########
%%%%%%%%%%%%%%%%%%%%#############*********+++++++****##########**++++============++++++++++==++++++===========================+++++++***#########
%%%%%%%%%%%%%%%%%%%%%############*******+++++++++*****##########*++++=========++=+++++++++=====++++============================+++++****#########
%%%%%%%%%%%%%%%%%%%%%%###########******++++++++++*****#####%%%##***+++========++++++++++========+++============================++++*****#########
%%%%%%%%%%%%%%%%%%%%%############******++++++++++*****#####%%%%###**+++++++===+++++++++==========++============================++++******########
%%%%%%%%%%%%%%%%%%%%%%###########*******+++++++++*****##########%###***+++=====++++============================================+++******###%%####
%%%%%%%%%%%%%%%%%%%%%%%##########******+++++++++******##############**++++=========+++=========================================++*******###%%%###
%%%%%%%%%%%%%%%%%%%%%%%%#########******+++++++++*****###############**++++========+++++=======================================+++******####%%%%%%
%%%%%%%%%%%%%%%%%@%%%%%%#########******+++++++++*****###############**++++===+++=++++++++=====================================+++******###%%%%%%%
%%%%%%%%%%%%%%%%%@%%%%%%%########******+++++++++****###############***+++++==+++++++++++++===================================+++*******###%%%%%%%
%%%%%%%%%%%%%%%%@@%%%%%%%#######*******+++++++++****###############***+++++++++++***+++*++===================================+++*******###%%%%%%%
%%%%%%%%%%%%%%%@@@%%%%%%%#######*******++++++++++***###############***++++++++******+++*+++=================================+++********##%%%%%%%%
%%%%%%%%%%%%%%%@@%%@%%%%%#######*******+++++++++++**#####%#########***++++*****+*******++++++++++==========================+++********##%%%%%%%%%
%%%%%%%%%%%%%%@@@%%@@%%%%#######*******++++++++++***#####%#########**+++++******++****+++++++++++==============-===========+++********##%%%%%%%%%
%%%%%%%%%%%%%@@@@@@@@%%%%%######*******++++++++*****#####%%######***++++++********+++++++++++++++=============--===========+++********##%%%%%%%%%
%%%%%%%%%%%@@@@@@@@@@%%%%%%%####*******+++++++*****##############***++++++**##*****++++++++++++++===+++=======-----=--====++++*******###%%%%%%%%%
%%%%%%%%%%@@@@@@@@@@@%%%%%%%####*******+++++++*****#############****++++++**##*****++++++++++++++==++++=======-----=--====++++*******##%%%%%%%%%%
%%%%%%%%%%@@@@@@@@@@@%%%%%%%#####******++++++******#############****++++++**#***+**++++++++++++++++++++=======-----=--====++++******##%%%%%%%%%%%
%%%@@@@%%@@@@@@@@@@@@%%%%%%%%####***********+*****#############*****++++++*****++++++++++++++++++++++++=======--------====+++*******#%%%%%%%%%%%%
%%%@@@@@@@@@@@@@@@@@@%%%%%%%%####**************################**++++++++++**+++=+++++++==++++++++++++++======-------=====+++*******#%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@%%%%%%%%%####*************################***++====+++++++=----=============+++++++++======-----=====+++*******##%%%%%%%%%%%%
@@@@@@@%%%@@@@@@@@@@@@@@%%%%%#####************###*############***+++========+===================++++++**+=======----=====+++*******##%%%%%%%%%%%%
@@@@@@@%%%@@@@@@@@@@@@@@%%%%%#####******************##########****++++========+=================+++++++*+=======----=====+++******###%%%%%%%%%%%%
@@@@@@%%%%@@@@@@@@@@@@@@%%%%%%#####*****************#########******+++=======+++==============+++++++++++======-----=====+++*****###%%%%%%%%%%%%%
@@@@@@@%%%@@@@@@@@@@@@@%%%%%%%%####*****************##########*******++++===++++=+++++++++++++++++++++++======------==++=+++*****###%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%###*****************##%%%########*****++++++++=+++++*************+****+++++===------==++++++*****##%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%###****************###%%%%%%#########**++++**+++++********************+++++===------==++++++*****##%%%%%%%%%%%%%%
@@@@@@@@@@%@@@@@@@@@@@@@@@%%%%%%###***********+++***#####%%%%%%%%%%####******###*******++**++++++++***++++====------===+++******###%%%%%%%%%%%%%%
%%%@@@@@@@%@@@@@@@@@@@@@@@%%%%%%####**********+++***#######%%%%#######***##**##********+++++++++++++++++++====------===+++******###%%%%%%%%%%%%%%
%%%@@@@@@@@@@@@@@@@@@@@@@@@%%%%%####***********+++***#################****#******+****++++++====++++++++++===-------===++++++**####%%%%%%%%%%%%%%
%%@%@@@@@%%@@@@@@@@@@@@@@@@@%%%%#####****+++***++++***##########****************++*+++++++++=========++++====------====+++++**##%%%%%%%%%%%%%%%%%
%%%%%@@@@@%%@@@@@@@@@@@@@@@@@%%%%%####***++++*++++++**#####**********+*+++*++++++**++++++====================------====+++++**##%%%%%%%%%%%%%%%%%
%%%%%%@@@%%%@@@@@@@@@@@@@@@@@%%%%%####***+++++++++++**####**********+++++++++++++**+++=+====================-------=======+**##%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%#####****+++++++++***#####*********++++++++++++++++=============-==========------========+**####%%%%%%%%%%%%%%%%
%%%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%#######***++++++++***#####******+++++====+++========---===========------====-----========+****##%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%@@@@%@@@@@@@@@@%%%%########**++++++++***#####*****++++=======+=======-----==========-------=====----=======+******##%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%@%%@@@@@@@@@@@%%%%#######***++++******#######***++++============--=----===========-------=====----======++****+*###%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@%%%%%######**++++*******######***+++++=========================-===------========--=====+**#**+++*##%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%@@@@@@@@@%@@@%%%%%%%%%##***+++*******#####***++++++=======================-----------==============++*##**+++*####%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%@@@@@@@@@%@@@%%%%%%%%%###**++********#####****+++++=======================-----------====-========++*###*+++++*###%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%@@@@%%@@@%@@@@%%%%%%%%####**+*********###*****+++++++===============------------------===-=+++===+***###*+++++**##%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%@@@%%%%@@@@@@@@%%%%%%%%%%##***************************++++++++==========---------------====++++++********++==++*#####%%%%%%%%%
%%%%%%%%%%%%%%%%%%%@@@%%%%%%%@@@@@@%%%%%%%%%##********************************+++++=======----------------====+++++**##*****+===++**####%%%%%%%%%
%%%%%%%%%%%%%%%%%%%@@@%%%@@@@%@@@@@%%%%%%%%%%###****************##########*******++++====-----------------=+++==+++*##****#*+====++*####%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@@@%%%%%%%%%%###*********************######*******+++===------------------=+++==++**##**+*#*+====++*#####%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@@@%%%%%%%%%%%##**********+++**********###********+++==------------------==+++==++**#**+++#*+=====+*######%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@%%%%%%%%%%%###****#****++++++++++*********+***+++==-------------------==++++++*****+++*#*+=====+*######%%%%#%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@%%%%%%%%%%%%%%########***+++++++++++++++++++++++====--------------------==+++*******+++***++======+##%####%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@%%@%%%%%%%%%%%%#######***++++++++++++++++++++======--------------------==+++*******+==+***++======+*#%####%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@%%@@%%%%%%%%%%%%######***++++++++++++++========-----------------------===++****###*===++*#*+=-=====*#%%###%%%%%#
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######**+++++++++++=======---------------------------==+****##***+===++*#*+=-=====+#%%%###%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####***++++++++++======----------------:------==---=++****##*++====+**#*+=--====+#%%%####%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####**++++++++++======---------------------=====--=+*****#*++=====+**#*+=--====+##%%%###%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####***+++++++++=======-----==----------===========+**#***++==--==++*#*+=--====+*##%%####%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####***+++*++++=========---=======----===========+******+==-----=++*#*=---=====**##%####%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###****+**++++==========--===============++++===+*#****=-------==+*#*=---=====+*##%####%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###******++++===========--==============++++==+*##***+-:------==+**+=----====+*#%%%###%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######**++++============--==++===++++=++**+++*###*++=---------=+***+=-----==+*##%%####%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#######*+++++===========--==++++++++++++**+***##**+=----------=+***+=------=+*##%%#####%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#######****+++===========-==++++++++++++*****##*+==-----------=+**++=------=+*##%%######
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######******+++=====+++====++++***+++*********+=--::---------=++*+=-------=+*##########
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######*****+++=====+++===++++***************+=--:::---------=++*++=------=+*##########
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#######*****++=====+++++++++************##*+-::::::---:::::-=++**+=------=++*#########