##########################################################################################################################################################################################################################&&%%&&$$$$&&&&&&@@&&&&%%&&&&@@&&$$$$$$%%$$&&%%%%$$}}}}!!                  %%$$$$%%%%}}}}}}}}}}%%$$}}$$%%%%&&&&&&&&%%}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}%%%%%%%%%%$$$$$$$$$$
########################################################################################################################################################################################################################@@%%&&&&$$%%%%&&&&@@&&&&%%@@&&@@$$$$$$$$$$$$&&&&%%$$}}}}!!                  %%$$%%%%$$}}}}}}}}}}%%$$}}$$%%$$&&&&&&&&$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}%%%%%%%%%%$$$$$$$$$$
########################################################################################################################################################################################################################&&%%&&%%$$&&&&&&@@&&&&@@%%&&@@%%}}$$$$$$$$!!&&%%%%$$}}}}                  !!%%%%%%&&}}}}}}}}}}$$%%$$$$%%%%%%&&&&&&&&}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$%%%%%%%%$$$$$$$$$$
######################################################################################################################################################################################################################@@%%&&&&%%%%%%&&&&@@&&&&@@%%&&&&}}$$$$$$$$!!  &&&&%%$$}}}}                  $$%%%%%%&&}}}}}}}}}}%%$$}}$$%%%%&&&&&&&&%%}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$%%%%%%%%$$$$$$$$$$
######################################################################################################################################################################################################################&&%%&&&&$$&&%%&&@@&&&&&&@@%%&&$$}}$$$$$$}}    &&&&%%$$}}}}                !!&&%%%%&&$$$$}}$$$$$$%%$$$$$$%%%%&&&&&&&&$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$%%%%%%%%$$$$$$$$$$
####################################################################################################################################################################################################################@@%%%%&&%%%%&&&&&&@@&&&&&&@@&&%%$$$$$$$$}}      &&&&%%$$}}}}                $$%%%%%%@@$$$$$$$$$$$$%%$$$$%%%%%%&&&&&&%%}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$%%%%%%%%%%$$$$$$$$
####################################################################################################################################################################################################################$$$$&&%%$$&&$$&&@@@@&&&&@@@@&&$$$$$$$$$$        &&&&%%$$}}}}                %%%%%%&&&&}}$$$$$$}}%%%%$$%%&&%%&&&&&&&&$$}}}}}}}}}}}}}}$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$%%%%%%%%$$$$$$$$$$
##################################################################################################################################################################################################################WW&&%%@@%%%%%%&&&&@@@@&&&&@@@@%%}}$$$$$$!!        &&&&%%$$}}}}                %%$$%%&&%%$$$$}}$$$$%%$$}}%%&&%%&&&&&&&&}}}}}}}}}}}}}}$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$%%%%%%%%%%$$$$$$$$
################################################################################################################################################################################################################WW%%$$$$%%$$&&%%&&@@&&&&&&@@@@@@}}$$$$$$$$          &&%%%%$$}}}}              !!&&%%%%&&$$$$$$}}}}$$%%$$$$%%%%&&&&&&&&&&}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$%%%%%%%%%%$$$$$$$$
################################################################################################################################################################################################################@@%%$$$$$$$$%%&&&&@@&&&&&&@@@@&&}}$$$$$$}}        !!&&&&%%$$}}}}              $$%%%%%%&&$$$$$$$$$$$$%%$$$$%%$$&&&&&&&&%%}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$%%%%%%%%%%$$$$$$$$
################################################################################################################################################################################################################&&}}$$$$%%$$%%&&@@&&&&&&@@@@@@$$}}$$$$}}          !!&&&&%%$$}}}}              %%$$&&&&%%}}$$$$$$$$%%$$$$%%%%%%&&&&&&&&}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$%%%%%%%%%%$$$$$$$$
##############################################################################################################################################################################################################@@%%}}&&%%%%%%%%&&@@&&&&&&@@@@&&}}$$$$$$}}          !!&&&&%%$$}}}}            !!&&$$%%&&$$$$$$$$$$$$%%$$$$%%$$&&&&&&&&&&}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$%%%%%%%%%%$$$$$$$$
##############################################################################################################################################################################################################&&$$&&%%$$&&&&&&@@@@&&&&&&@@@@%%}}$$$$$$!!          !!&&&&%%$$}}}}            !!&&%%%%&&$$}}$$$$$$%%%%$$%%&&$$&&&&&&&&%%}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$%%%%%%%%%%%%%%$$$$
############################################################################################################################################################################################################@@%%$$@@%%%%%%&&&&@@@@@@&&@@@@@@$$$$$$$$$$            !!&&&&%%$$}}}}            $$%%&&&&&&$$$$}}$$$$%%$$$$%%%%%%&&&&&&&&}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$%%%%%%%%%%%%$$$$$$
############################################################################################################################################################################################################&&%%&&%%$$%%%%&&@@@@&&&&@@@@@@&&$$$$$$$$}}            !!&&&&%%$$}}}}          !!%%$$&&&&%%$$$$$$$$%%%%$$%%%%$$&&&&&&&&&&}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$%%%%%%%%%%%%%%$$$$
##########################################################################################################################################################################################################&&&&&&&&$$%%%%&&&&@@@@&&&&@@@@@@$$$$$$$$$$!!            !!&&&&%%%%$$}}          $$$$$$%%@@$$$$$$$$$$%%%%$$%%%%$$&&&&&&&&%%!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$%%%%%%%%%%%%%%$$$$
########################################################################################################################################################################################################WW&&&&@@%%%%%%&&&&@@&&@@&&@@@@@@&&$$$$$$$$$$              !!&&&&%%$$$$}}        }}%%$$%%%%&&$$$$$$$$$$%%$$$$%%$$&&&&&&&&&&$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$%%%%%%%%%%%%%%%%$$
########################################################################################################################################################################################################&&%%&&&&%%&&%%&&@@@@&&@@&&@@@@@@&&}}}}}}}}!!              !!&&&&%%$$$$}}        $$%%%%%%&&%%$$$$$$$$$$%%$$%%&&$$&&&&&&&&&&}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$%%%%%%%%%%%%%%%%$$
######################################################################################################################################################################################################@@&&&&@@$$%%%%&&&&@@&&&&&&@@@@@@@@%%$$}}}}$$!!              !!&&&&%%$$$$}}      }}%%$$&&%%@@$$$$$$$$$$%%$$$$%%%%$$&&&&&&&&&&$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$%%%%%%%%%%%%%%$$$$
############################################################################################################################################################################################@@@@##WW&&%%&&@@%%%%&&%%&&@@@@&&&&&&%%@@@@@@$$$$$$}}$$                }}&&%%%%$$$$}}      %%%%%%%%&&&&$$$$$$$$$$&&$$$$%%$$&&&&&&&&&&&&$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}%%%%%%%%%%%%%%%%$$
############################################################################################################################################################################################@@WW##@@&&%%&&&&$$%%%%&&@@@@&&&&&&&&}}@@@@&&$$$$$$$$}}                }}&&%%%%$$$$}}    !!%%%%%%&&&&$$$$$$$$$$%%%%$$%%%%%%&&&&&&&&&&%%}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}%%%%%%%%%%%%%%%%$$
############################################################################################################################################################################################&&&&##&&&&&&@@$$%%&&&&@@@@&&&&&&&&%%$$@@@@%%$$$$$$$$!!                $$&&%%%%$$$$}}    %%%%%%%%@@&&}}$$$$$$$$%%%%$$%%%%&&&&&&&&&&&&$$}}}}}}}}}}}}}}}}}}}}}}$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}%%%%%%%%%%%%%%%%$$
############################################################################################################################################################################################@@@@@@&&&&&&%%$$&&&&&&@@@@&&@@&&@@&&%%@@@@%%$$$$$$$$                  $$&&%%%%$$$$}}  !!%%%%%%&&&&$$}}$$$$$$%%%%$$%%&&%%&&&&&&&&&&&&}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}&&%%%%%%%%%%%%%%%%
############################################################################################################################################################################################@@WW&&&&@@%%%%%%&&&&@@@@@@@@@@@@@@@@&&@@&&$$$$$$$$}}                  $$&&%%%%$$$$}}  $$%%%%&&&&%%}}$$$$$$$$%%%%$$%%&&&&&&&&&&&&&&&&}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}%%%%%%%%%%%%%%%%%%
############################################################################################################################################################################################&&&&%%@@&&%%&&%%&&&&@@@@@@@@@@@@@@@@@@@@%%%%%%$$}}                    $$&&%%%%$$$$}}!!&&$$%%&&@@}}$$}}$$$$%%%%$$%%%%&&&&&&&&&&&&&&%%}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}%%%%%%%%%%%%%%%%%%
##########################################################################################################################################################################################WW&&%%&&&&$$%%&&&&%%@@@@@@@@&&@@@@@@@@@@@@%%%%%%$$}}                    $$&&%%%%$$$$}}$$%%%%%%@@%%}}$$}}}}$$%%$$$$%%%%&&&&&&&&&&&&&&$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}%%%%%%%%%%%%%%%%%%
##########################################################################################################################################################################################WW@@%%@@%%%%&&&&&&&&@@@@@@@@&&@@@@@@@@@@@@%%%%$$}}}}                    %%&&%%%%$$$$$$%%%%&&&&&&}}$$$$$$$$%%%%$$%%%%&&&&&&&&&&&&&&@@$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}%%&&%%%%%%%%%%%%%%
##########################################################################################################################################################################################@@&&%%&&$$%%&&&&@@&&@@&&@@&&@@@@@@@@@@@@@@$$$$}}$$}}                    %%&&%%%%$$$$%%%%%%%%&&$$}}$$$$}}%%%%$$%%%%%%&&&&&&&&&&&&&&&&}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}%%&&%%%%%%%%%%%%%%
##########################################################################################################################################################################################&&%%&&&&$$&&&&&&@@&&@@@@&&@@@@@@@@@@@@%%%%}}}}}}}}                      %%&&%%%%$$%%%%$$&&&&&&$$$$$$$$$$%%$$$$%%%%&&&&&&&&&&&&&&&&%%}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}%%&&%%%%%%%%%%%%%%
########################################################################################################################################################################################@@&&&&@@$$&&&&&&@@@@%%@@@@@@@@@@@@@@@@&&%%$$$$$$}}}}!!                    %%&&%%%%$$%%%%%%%%@@%%}}$$$$$$%%%%$$%%%%%%&&&&&&&&&&&&&&&&$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}%%&&%%%%%%%%%%%%%%
######################################################################################################################################################################################WW%%%%@@$$%%&&&&@@@@@@&&&&&&@@@@@@@@@@&&&&&&$$$$$$$$}}!!                    &&&&%%$$%%%%%%&&&&&&}}$$$$$$$$%%$$$$%%%%&&&&&&&&&&&&&&&&&&}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}%%&&%%%%%%%%%%%%%%
######################################################################################################################################################################################@@%%@@&&%%&&&&@@@@@@@@&&&&@@@@@@@@@@@@&&&&&&$$}}}}}}}}                      &&&&%%$$%%%%%%%%&&%%$$$$$$$$%%%%$$%%%%&&&&&&&&&&&&&&&&&&%%}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}%%&&%%%%%%%%%%%%%%
####################################################################################################################################################################################@@%%&&@@$$&&&&&&@@@@@@@@&&&&@@@@@@@@%%%%%%&&$$$$$$$$}}}}                      &&&&%%%%%%%%&&&&&&}}$$$$$$$$%%$$$$%%%%&&&&&&&&&&&&&&&&&&$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}%%&&&&%%%%%%%%%%%%
##################################################################################################################################################################################WW&&&&@@%%&&&&&&&&@@@@@@@@@@&&@@@@@@$$$$%%%%&&$$$$$$$$}}}}}}                    &&&&$$%%%%%%&&@@%%$$$$$$$$%%%%$$%%%%&&&&&&&&&&&&&&&&&&&&$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$&&&&%%%%%%%%%%%%
################################################################################################################################################################################@@&&&&@@&&%%&&&&&&@@@@@@@@&&&&&&@@&&$$$$$$$$%%&&&&%%%%$$}}!!                      &&&&$$$$%%&&&&%%$$$$$$$$$$%%$$%%%%&&&&&&&&&&&&&&&&&&&&&&$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$&&&&%%%%%%%%%%%%
################################################################################################################################################################################&&&&&&@@%%&&&&&&@@@@@@@@@@@@&&&&@@$$$$$$$$}}}}%%&&%%$$$$}}!!                      %%&&$$$$$$&&&&$$%%$$$$%%%%%%$$&&&&&&&&&&&&&&&&&&&&&&&&@@$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$&&&&%%%%%%%%%%%%
##############################################################################################################################################################################&&&&$$%%%%%%&&&&@@@@@@@@@@&&@@@@@@%%$$$$$$}}    !!&&%%$$}}}}                        %%&&&&%%$$&&&&}}$$$$$$%%&&%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$&&%%%%%%%%%%%%%%
############################################################################################################################################################################@@&&&&$$$$%%$$&&&&@@@@@@@@@@@@@@@@%%$$$$$$!!        &&&&$$$$}}                      }}&&%%&&%%$$&&$$$$$$$$$$%%%%%%&&%%&&&&&&&&&&&&&&&&&&&&&&%%}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$&&&&%%%%%%%%%%%%
##########################################################################################################################################################################&&&&&&@@%%%%&&&&&&@@@@@@@@@@@@@@@@&&$$$$$$$$          &&%%$$}}}}                      %%&&%%&&%%$$%%}}$$$$$$%%%%$$%%&&&&@@&&&&&&&&&&&&&&&&&&&&$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$&&&&%%%%%%%%$$%%
########################################################################################################################################################################@@&&%%&&&&%%&&@@&&&&@@@@@@@@@@@@@@@@%%$$$$$$}}          &&&&%%$$}}                    !!&&%%&&@@%%$$$$$$$$$$$$%%%%$$&&%%@@&&&&&&&&&&&&&&&&&&&&@@$$}}}}}}}}}}}}}}}}}}}}$$}}$$}}}}$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}}}$$&&&&%%%%%%%%%%%%
######################################################################################################################################################@@##############WW&&%%%%@@%%&&&&&&&&@@@@@@@@@@@@@@@@@@$$$$$$$$            &&&&%%$$}}                    $$&&%%&&&&}}$$$$$$$$$$%%%%%%&&&&&&@@&&&&&&&&&&&&&&&&&&&&&&}}}}}}}}}}}}}}}}}}}}}}$$$$$$}}}}$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$&&&&%%%%%%%%%%%%
######################################################################################################################################################&&WW##########&&%%&&%%&&%%&&&&@@@@@@@@@@@@@@@@@@@@@@%%$$$$$$!!            @@&&%%$$}}                    %%%%&&@@$$}}$$$$}}}}$$%%$$%%%%&&&&@@&&&&&&&&&&&&&&&&&&&&%%}}}}}}}}}}}}}}}}}}}}}}}}$$$$}}}}}}$$}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$&&&&%%%%%%%%%%%%
######################################################################################################################################################@@WW########@@&&&&%%@@%%%%&&@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$}}              @@&&%%$$}}                  $$&&%%&&&&}}$$$$}}$$}}$$%%$$%%&&&&&&@@@@&&&&&&&&&&&&&&@@@@$$}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$}}$$}}}}$$&&&&%%%%%%%%%%%%
######################################################################################################################################################@@########@@&&%%&&&&%%%%&&&&@@@@@@@@@@@@@@@@@@@@@@%%$$$$$$!!              @@&&$$$$}}                  %%%%&&@@%%$$$$$$$$%%$$$$$$%%&&&&&&&&@@&&&&&&&&&&&&&&&&&&%%}}}}}}}}}}}}}}}}}}}}}}$$}}}}$$}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$}}$$}}}}$$&&&&%%%%%%%%%%%%
######################################################################################################################################################&&######&&&&&&%%&&%%%%&&&&@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$}}                @@&&$$$$}}                }}&&%%&&@@}}}}$$}}%%%%%%$$$$%%&&&&&&&&@@&&&&&&&&&&&&&&@@%%}}}}}}}}}}}}}}}}}}}}}}$$$$}}$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$}}}}}}}}&&&&%%%%%%%%%%%%
####################################################################################################################################################WW&&@@##@@&&&&@@%%%%&&&&&&@@@@@@@@@@@@&&@@@@@@@@@@&&$$$$$$!!                @@&&$$$$!!                %%%%&&&&%%}}$$$$$$%%$$%%%%}}%%&&&&&&@@&&&&&&@@&&&&&&@@&&%%$$$$}}$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$}}}}}}&&&&%%%%%%%%%%$$
######################################################################################################################################################@@##WW&&&&@@%%%%&&&&&&@@@@@@@@@@@@&&@@@@}}@@@@@@$$$$$$$$                  @@&&$$$$!!                }}$$%%@@$$$$$$$$%%%%$$%%&&$$%%@@&&&&&&&&&&&&&&&&@@&&&&%%&&$$$$}}}}}}}}}}}}}}}}}}$$}}$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$}}$$$$}}}}}}&&&&&&%%%%%%%%$$
####################################################################################################################################################WW@@&&&&&&@@%%%%@@&&%%@@@@@@@@@@@@&&@@@@&&$$@@@@&&$$$$$$}}                !!@@&&$$$$!!                }}&&&&%%$$$$$$$$%%$$%%%%&&%%&&&&&&&&&&&&&&&&&&&&&&&&&&%%&&%%}}}}}}$$$$}}$$}}$$$$$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$}}$$$$$$}}}}&&&&&&%%%%%%%%$$
######################################################################################################################################################&&&&&&&&&&%%&&@@@@&&@@@@@@@@@@@@@@@@@@@@%%@@@@%%$$$$$$!!                !!@@&&$$$$!!              !!%%%%&&$$$$$$$$%%%%$$%%%%&&&&&&@@&&&&&&&&&&%%$$$$$$%%%%&&&&%%$$$$}}$$$$}}$$}}$$$$$$}}}}}}}}$$$$$$}}}}$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}%%&&&&%%%%%%%%%%
####################################################################################################################################################WW&&&&@@@@%%&&&&@@@@&&@@&&&&&&@@@@@@@@@@@@@@@@@@$$$$$$$$                  !!@@&&$$$$!!            !!!!&&%%%%%%$$$$$$$$%%%%%%&&&&&&&&&&@@&&@@&&$$}}$$$$$$%%&&%%&&&&$$$$$$$$}}$$$$}}$$$$$$}}}}}}$$$$$$$$$$$$$$$$$$$$}}}}}}}}}}}}}}}}$$}}$$$$}}%%&&&&%%%%%%%%%%
####################################################################################################################################################&&&&@@@@%%&&&&&&@@@@&&&&@@&&&&@@@@@@@@@@@@@@@@&&$$$$$$}}                  !!&&&&$$$$!!            }}%%%%&&&&&&$$$$$$$$%%%%%%&&@@%%&&&&&&&&%%}}$$$$$$$$$$$$&&&&&&&&$$$$$$}}}}$$$$$$$$$$$$}}}}$$}}}}$$$$$$$$$$$$$$$$$$$$$$}}}}}}}}}}$$$$$$$$}}%%&&&&%%%%%%%%%%
##############################################################################################################################################@@%%&&%%@@@@%%&&&&@@@@@@@@&&&&@@&&@@@@@@@@@@@@@@@@@@%%$$$$$$!!                  }}&&&&$$$$!!          !!}}&&%%&&@@$$$$$$$$%%%%$$%%&&&&$$&&&&&&$$$$}}$$$$$$$$$$$$$$&&&&%%$$$$$$}}}}$$$$$$$$$$$$$$}}$$}}$$$$$$$$$$$$$$$$$$$$$$$$}}}}}}}}}}$$$$$$$$$$%%&&&&&&%%%%%%%%
##############################################################################################################################################%%@@&&&&@@%%&&&&@@@@@@@@@@@@&&&&@@@@@@@@@@@@@@@@@@@@$$$$$$$$                    }}&&%%$$$$!!        !!!!%%%%&&&&&&$$$$$$$$&&%%%%&&&&@@$$&&@@%%$$$$$$$$$$$$$$}}}}$$&&&&%%$$$$}}$$$$$$$$$$$$$$$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%%%%%%%%%
############################################################################################################################################%%%%&&@@@@%%&&&&@@@@@@@@@@@@@@&&@@@@@@@@@@@@@@@@@@&&%%$$$$$$}}                    }}&&%%$$$$!!        }}}}&&%%&&@@$$$$$$$$%%%%%%&&&&@@@@$$@@%%}}$$$$$$$$$$$$$$}}$$$$&&&&%%$$$$$$$$}}}}}}}}}}}}}}}}$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&&&%%%%%%%%
########################################################################################################################################@@&&&&&&&&&&%%&&&&@@@@@@@@@@@@@@@@&&@@@@@@@@@@@@@@&&&&&&&&$$$$$$$$                    $$&&%%$$$$!!      !!!!%%%%&&@@&&$$$$$$%%%%$$%%&&&&&&&&%%&&$$$$$$$$$$$$$$}}}}$$$$$$&&%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&&&%%%%%%%%
######################################################################################################################################@@%%&&%%%%%%%%&&&&@@@@@@@@@@@@@@@@@@&&@@@@@@%%$$$$$$}}$$&&&&$$$$$$}}                    $$&&%%$$$$!!    !!!!}}&&%%&&@@%%$$$$$$%%%%%%&&&&&&@@&&&&$$$$$$$$$$$$$$$$}}}}$$}}$$&&$$$$}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&%%%%%%%%
####################################################################################################################WWWW############@@%%&&%%%%$$%%$$&&@@@@@@@@@@@@@@@@@@@@@@@@&&$$$$$$!!      &&%%$$$$$$}}                    %%&&%%$$$$!!    !!!!%%%%%%&&&&$$$$$$%%&&$$&&&&&&&&@@@@$$$$$$$$$$}}$$$$$$}}$$}}$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&%%%%%%%%
####################################################################################################################@@@@##########@@&&&&%%WW%%%%&&&&&&@@@@&&&&@@@@@@@@@@@@&&%%$$$$}}        }}&&%%%%$$$$$$!!                  %%&&%%$$$$!!  !!  $$&&%%&&@@%%$$$$$$&&%%%%&&&&@@&&@@&&}}$$$$$$$$$$$$$$$$$$$$$$}}&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&%%%%%%%%
####################################################################################################################WW@@########&&%%%%$$@@%%%%&&&&@@@@@@@@&&&&@@@@@@@@@@&&$$$$$$!!          &&&&&&%%$$}}!!                    &&&&%%$$$$!!!!!!  %%%%&&@@%%$$$$$$%%&&%%&&%%@@@@&&@@$$$$$$$$$$$$$$$$}}$$$$$$$$$$%%&&$$$$%%%%$$$$$$$$}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&%%%%%%%%%%
####################################################################################################################WW########@@%%%%$$@@%%%%&&&&@@@@@@@@@@&&&&@@@@@@@@&&$$$$$$                }}&&%%$$}}                      &&&&%%$$$$!!}}  }}&&&&&&@@$$$$$$%%&&%%&&&&&&@@@@&&@@}}}}$$}}}}}}}}}}}}$$$$$$$$&&&&%%%%&&&&%%%%$$$$$$}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&%%%%%%%%%%
####################################################################################################################@@@@####&&&&%%&&&&%%&&&&@@@@@@@@@@@@@@@@@@@@@@@@&&$$$$$$!!                  &&%%$$}}                      @@&&%%$$$$}}}}!!%%%%&&@@%%$$$$$$%%%%%%&&&&@@&&@@@@%%}}$$$$$$$$$$$$$$$$}}$$$$$$&&%%&&&&%%%%%%$$$$$$}}}}}}}}}}}}}}$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&%%%%%%%%
####################################################################################################################@@WWWW&&&&&&%%&&%%%%&&@@@@@@@@@@@@@@&&@@@@@@@@@@$$$$$$!!                    &&%%$$}}                      @@&&%%$$$$!!!!&&%%&&&&&&$$$$$$$$%%%%&&&&@@@@&&&&&&}}$$$$$$$$$$$$$$$$$$$$$$$$$$%%$$%%%%%%%%%%%%%%$$$$}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&%%%%%%%%
####################################################################################################################@@@@@@&&&&@@%%%%&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@%%$$$$}}                      &&&&$$}}                    !!@@&&%%$$!!!!$$&&%%&&@@$$$$$$$$%%%%%%&&&&@@@@&&@@$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$}}%%%%&&&&&&%%%%$$$$$$$$}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&%%%%%%%%
####################################################################################################################@@&&&&&&@@%%&&&&%%&&@@@@@@@@@@@@@@&&@@@@@@@@&&}}$$$$                        &&&&$$}}                    !!@@&&%%}}}}  %%%%&&&&%%$$$$$$%%%%%%&&%%@@@@@@&&&&}}}}$$}}$$$$}}}}$$$$$$$$$$$$$$$$$$$$$$@@&&&&%%%%%%$$$$$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&%%%%%%
####################################################################################################################&&&&&&@@$$&&&&&&%%@@@@&&@@@@@@@@@@%%%%@@@@@@%%$$$$!!                        &&%%$$}}                    !!@@%%$$!!}}!!%%&&&&&&$$$$$$%%&&$$&&%%&&@@@@@@@@%%}}}}$$$$$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&%%%%%%
##################################################################################################################&&&&&&@@%%&&&&&&@@&&@@@@@@@@@@@@@@&&%%@@@@@@&&$$}}$$                          &&%%$$}}                    !!$$%%$$}}}}%%&&&&@@%%$$$$$$&&%%%%%%%%@@@@&&@@@@}}}}}}$$$$$$$$}}$$}}$$$$$$$$$$$$$$$$$$$$@@&&&&%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&%%%%%%
##############################################################################################################&&%%&&&&@@%%%%%%&&@@@@&&@@@@&&@@@@@@@@&&@@@@@@@@$$$$$$!!                          &&%%$$}}                    }}@@&&%%}}%%%%&&@@&&$$$$$$%%%%%%&&%%@@&&@@@@@@&&}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&%%%%%%%%
##########################################################################################################WW&&%%&&@@@@%%&&&&&&@@@@@@&&@@&&@@@@@@@@@@@@@@@@@@&&}}$$}}                          !!&&%%$$!!                    }}&&%%$$%%%%%%&&&&$$$$$$%%%%%%&&%%@@@@@@@@@@@@%%}}}}}}$$$$}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&%%%%%%$$$$}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&%%%%%%%%
########################################################################################################@@%%%%&&&&@@%%&&&&@@@@@@@@@@&&@@@@@@@@@@@@@@@@@@@@@@$$$$$$!!                          }}&&%%$$!!                    $$&&%%%%&&%%&&@@$$$$$$$$&&%%%%&&&&@@@@@@@@@@@@$$}}}}}}$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&%%%%$$$$$$}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&%%%%%%%%
######################################################################################################@@%%&&&&%%&&%%&&&&&&@@@@@@@@@@&&@@@@@@@@@@@@@@@@@@@@&&$$$$}}                            $$&&%%$$!!                    %%&&%%&&%%&&@@%%$$$$$$&&%%%%&&&&&&@@@@@@@@@@&&$$}}}}}}$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&%%%%%%$$$$$$$$}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&%%%%%%
################################################################################WW################WW%%%%&&&&&&$$%%%%&&@@@@@@@@&&@@&&&&@@@@@@@@@@@@@@@@@@@@$$}}}}!!                            %%&&%%$$!!                  !!%%&&%%$$&&&&@@$$$$$$%%&&%%&&%%@@@@@@@@@@@@@@$$}}}}}}}}}}$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&%%%%%%$$$$$$}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&%%%%%%
################################################################################@@##############WW$$@@&&&&@@%%&&&&&&@@@@@@@@@@@@&&@@&&@@@@@@%%$$$$}}$$@@&&$$$$}}$$!!                          &&&&%%$$!!                !!!!%%&&&&%%%%@@%%$$$$$$&&%%&&&&&&@@@@@@@@@@@@@@}}$$}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&%%%%%%$$$$$$}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&%%%%%%
################################################################################WW############&&%%&&&&@@&&%%&&&&@@@@@@@@@@@@@@@@@@@@@@@@%%$$$$!!      }}@@%%}}$$}}                            &&&&%%$$!!              !!!!}}&&%%&&%%&&&&$$$$$$&&%%%%&&&&&&@@@@@@@@@@@@%%$$$$}}$$}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&%%%%%%$$$$}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&%%%%%%
################################################################################@@########@@&&&&&&&&@@%%%%&&&&@@@@@@@@@@@@@@@@@@@@@@&&$$$$$$            @@$$$$$$}}!!                          &&&&%%$$!!            !!!!!!&&&&&&@@%%%%$$$$$$&&&&%%&&&&@@@@&&@@@@@@@@@@$$$$$$$$$$}}$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&%%%%$$$$}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&%%%%%%
################################################################################@@######&&&&&&%%@@&&%%&&&&@@@@@@@@@@@@@@@@@@@@@@@@&&$$$$}}            &&&&%%$$$$}}!!                          &&&&%%$$!!          !!!!!!$$&&&&&&@@$$$$$$$$%%&&%%&&&&&&@@@@@@@@@@@@@@&&$$$$$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&%%%%%%%%$$$$$$}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&&&%%%%%%
##############################################################################WW&&WW@@&&&&&&@@&&&&&&&&&&@@@@@@@@&&@@@@@@@@@@@@@@@@$$$$}}              !!%%&&$$$$!!                            &&&&%%$$!!        !!!!!!}}&&&&&&@@$$$$$$%%$$&&%%&&&&&&@@@@@@@@@@@@@@@@%%}}$$}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&%%%%%%%%$$$$$$}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&&&%%%%%%
################################################################################@@&&%%&&&&@@&&&&%%&&&&@@@@@@@@@@@@&&&&&&@@@@@@@@$$$$$$                  $$&&%%$$                              @@&&%%$$!!        !!!!}}$$&&&&@@%%$$$$$$&&%%%%&&&&&&&&@@@@@@@@@@@@@@@@$$}}}}}}}}$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&%%%%%%%%$$$$$$}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&&&%%%%%%
##############################################################################WW%%&&&&@@@@%%&&@@&&@@@@@@@@@@@@@@&&@@&&$$@@@@@@&&}}$$!!                  !!&&%%$$                              @@&&%%$$!!      }}}}$$$$%%&&&&&&$$$$%%&&%%&&%%%%&&@@&&@@@@@@@@@@@@@@&&}}}}$$}}}}$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&&&%%%%%%
####################################################@@####################@@$$&&&&&&@@&&%%&&&&@@&&@@@@@@@@@@@@@@@@@@&&%%@@@@WW$$$$}}                    !!&&%%$$                              @@&&$$$$$$  %%}}}}$$$$$$&&&&@@$$$$$$%%&&&&&&%%%%@@@@&&@@@@@@@@@@@@@@&&}}}}$$}}}}$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%%%%%$$$$$$$$}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&&&%%%%%%
####################################################@@################WW&&$$&&&&@@@@&&&&&&&&@@@@@@@@&&@@@@@@@@@@@@@@@@@@@@@@%%$$$$!!                    !!&&%%$$                            !!@@&&%%$$%%%%}}}}$$$$$$%%&&&&@@%%$$$$%%&&&&&&@@&&@@@@@@@@@@@@@@@@@@@@$$}}}}$$}}}}$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%%%%%$$$$$$}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&&&%%%%%%
####################################################WW############WW@@%%%%&&&&@@&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&}}$$}}                      }}&&%%$$                            !!@@&&%%$$%%}}}}$$$$%%%%&&%%@@&&$$$$$$&&%%&&&&@@&&@@@@@@@@@@@@@@@@@@@@}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%%%%%$$$$$$}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&&&%%%%%%
####################################################@@########WW&&$$%%&&&&%%&&&&&&@@@@@@@@@@@@@@@@&&@@@@@@@@@@@@@@@@@@@@@@%%$$$$                        $$&&%%$$                      !!!!  %%&&&&%%$$$$}}$$$$$$$$&&%%&&@@$$$$$$%%%%%%&&&&&&&&@@@@@@@@@@@@@@@@&&%%}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%%%%%$$$$$$}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&&&&&%%%%
####################################################@@######@@%%%%&&&&&&@@%%&&&&@@@@@@@@@@@@@@@@@@&&@@@@@@@@@@@@@@@@@@@@&&}}$$}}                        $$&&%%}}                    !!$$%%$$&&&&%%$$}}}}$$$$$$$$%%&&&&@@%%$$%%%%%%%%&&&&@@&&@@@@@@&&&&&&&&@@@@$$}}$$$$$$$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%%%%%$$$$$$$$}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&&&%%%%%%
####################################################&&WW@@%%%%&&&&@@@@&&&&&&@@@@@@@@@@@@@@@@&&@@@@&&@@@@@@@@@@&&&&&&@@@@%%$$}}}}                        %%&&$$}}                $$$$}}%%%%%%&&&&%%}}}}$$%%$$$$%%%%&&&&&&$$$$%%&&%%&&&&@@@@%%@@&&%%$$$$$$$$&&&&&&$$$$}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%%%%%$$$$$$$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%&&&&&&&&%%%%
####################################################&&%%%%&&&&@@@@&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$}}      }}&&%%$$$$}}                        &&&&$$}}          }}!!}}%%%%%%%%%%%%%%%%%%}}!!$$%%$$$$&&%%&&WW$$$$$$&&%%&&&&&&@@@@@@%%$$$$$$$$$$%%&&&&@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%%%%%$$$$$$$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%$$&&&&&&&&%%%%
##########################WW####################@@@@%%&&&&@@@@%%&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&$$$$!!            %%%%$$$$}}                        &&&&%%}}    !!  }}$$$$&&%%%%&&&&%%&&&&&&%%$$}}$$%%$$%%%%&&@@%%$$$$&&%%%%%%&&@@@@@@%%$$$$$$$$$$$$$$%%&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%%%%%$$$$$$$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%$$&&&&&&&&%%%%
##########################WW##################@@%%@@&&&&@@&&&&&&@@&&@@@@@@@@@@@@@@@@@@@@@@@@@@%%$$$$!!              }}&&%%$$$$$$                        &&&&$$}}  !!$$$$%%%%%%%%&&&&&&&&&&&&&&&&%%$$}}$$%%&&&&%%@@&&$$%%%%&&%%&&&&&&@@@@&&$$$$$$$$$$$$$$$$}}@@&&$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%%%$$$$$$$$$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%&&&&&&%%%%%%
##########################WW############WW@@&&%%&&&&@@&&&&&&@@@@@@&&@@@@@@@@@@&&@@@@@@@@@@@@%%$$}}                    $$&&$$$$!!                        @@%%$$}}  !!%%%%%%&&&&&&&&&&&&&&%%}}&&&&%%$$}}$$%%&&&&&&@@$$%%%%&&%%&&&&&&@@@@@@%%$$$$$$$$$$$$$$$$}}@@&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%%%%%$$$$$$$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%
##########################@@########WW@@%%%%&&&&&&@@&&&&@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@@@@%%$$$$                      !!&&$$}}                          &&%%$$}}}}%%&&&&&&&&&&&&&&&&&&$$$$$$@@&&%%$$}}%%&&&&&&@@%%%%$$&&%%&&&&&&@@&&@@&&$$$$$$$$$$$$$$$$$$$$@@&&$$}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%%%%%$$$$$$$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%
##########################@@######@@%%%%&&@@@@%%%%%%&&@@@@@@@@@@@@&&@@@@@@@@@@@@%%@@@@@@$$$$$$                          &&%%$$                          @@%%$$$$&&&&&&&&&&&&&&&&&&%%$$%%%%%%@@&&%%}}}}&&%%&&@@%%$$$$%%&&&&&&&&&&@@&&@@$$$$$$$$$$$$$$$$$$$$$$&&@@%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%%%%%$$$$$$$$}}}}$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%
##########################@@WW&&%%&&&&&&@@@@&&&&&&@@@@@@@@@@&&@@@@&&@@@@@@@@@@@@@@@@@@%%$$$$!!                          &&%%$$                  !!$$$$$$&&%%$$$$&&&&&&&&&&&&&&&&$$$$%%%%%%%%&&$$$$%%%%&&&&@@%%$$$$%%&&&&&&&&@@&&&&@@%%$$$$$$$$$$$$$$$$$$$$$$%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%%%%%$$$$$$$$$$}}$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%
########################@@&&$$&&@@@@@@@@&&&&&&@@@@@@@@@@@@@@@@&&@@&&@@@@@@@@@@@@@@@@@@$$$$!!                            &&%%$$              $$%%$$%%%%%%&&%%$$%%&&&&&&&&&&&&%%}}&&&&%%%%%%&&%%$$%%&&%%%%@@%%$$$$%%%%%%@@%%@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%
############@@##@@WW%%$$%%&&&&@@@@&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$}}                            !!&&%%$$        !!}}!!%%%%%%%%%%&&&&%%$$%%&&&&&&&&&&$$$$&&&&&&&&&&&&@@$$%%&&&&&&%%&&$$$$%%&&&&@@%%@@@@@@@@&&&&$$$$$$$$}}$$$$$$$$$$&&&&%%$$$$$$$$$$$$$$$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%
######WWWW@@@@&&%%%%%%&&@@@@@@@@&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&%%$$$$&&@@@@&&}}$$                          !!  !!&&%%$$  !!}}!!$$%%%%&&&&&&&&&&&&&&%%$$%%&&&&@@%%$$%%&&&&&&&&&&&&@@@@%%&&&&@@&&&&%%%%%%&&&&@@&&@@@@@@@@&&@@$$$$$$$$$$}}$$$$$$$$$$@@%%&&%%$$$$$$$$$$}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%%%%%$$$$$$$$$$$$$$%%$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%
WW@@WW@@&&%%%%%%&&@@&&&&@@@@&&&&&&&&@@&&@@@@@@@@&&@@@@@@@@@@@@&&$$$$!!        $$&&%%$$$$!!                          !!!!@@%%$$!!$$%%%%&&&&&&&&&&&&&&&&&&&&%%$$%%&&&&$$%%&&&&&&&&&&&&%%&&@@@@&&&&&&&&%%%%%%%%&&%%&&&&@@@@@@@@@@@@&&}}$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%$$}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%%%%%$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%
WW&&%%%%%%&&&&@@@@@@%%%%%%&&@@@@@@@@@@&&&&@@@@@@@@@@@@@@@@@@%%$$$$!!            &&%%$$$$              !!              $$&&%%$$%%&&&&&&&&&&&&&&&&&&&&&&@@&&%%$$%%&&$$&&&&&&&&%%&&&&&&&&&&@@@@&&@@@@%%%%%%&&%%&&&&&&@@&&@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%%%$$$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%%%%%$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%
%%%%&&@@&&&&@@@@&&&&&&@@&&@@@@@@@@@@@@%%@@&&@@@@@@@@@@@@@@&&$$$$!!            !!&&%%$$$$}}              !!      !!  }}%%&&%%$$&&&&&&&&&&&&&&&&&&&&&&@@@@&&%%$$$$$$&&&&&&&&&&%%&&&&&&&&@@@@&&&&@@%%%%%%&&%%%%&&&&@@@@@@@@@@@@@@&&}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&%%%%%%%%$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&%%&&&&&&&&%%%%
@@@@@@@@&&%%&&&&&&@@@@@@@@@@@@@@@@@@@@&&@@@@@@@@@@@@@@@@&&$$$$!!                $$&&%%}}          !!      }}}}}}%%%%%%&&&&%%$$&&&&&&&&&&&&&&&&&&&&@@@@&&$$}}!!%%&&&&&&&&&&&&&&&&&&&&@@&&%%&&%%&&%%%%&&%%&&@@&&@@@@@@@@@@@@@@@@%%}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&%%%%%%%%$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&%%
@@&&&&&&@@&&@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@@@@@@@@@@@@$$$$}}                  !!&&$$!!          !!}}!!}}%%%%%%&&&&&&&&&&$$$$&&&&&&&&&&&&@@&&@@@@@@&&@@&&%%}}%%&&&&&&&&&&&&&&&&@@@@&&&&&&@@&&&&%%%%&&%%&&@@@@@@@@@@@@@@@@@@@@$$$$}}$$$$}}$$$$$$$$$$$$$$$$$$$$&&&&&&%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&%%%%%%%%$$$$$$$$}}$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
@@@@@@@@@@&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&@@@@@@@@%%$$}}  !!                !!&&%%}}      !!  $$$$%%%%&&&&&&&&&&&&&&&&$$$$&&&&&&&&@@@@@@@@@@@@@@%%@@&&%%}}%%&&&&&&&&&&%%&&@@@@&&&&&&@@@@$$%%%%&&&&&&&&@@@@@@@@@@@@@@@@@@&&}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&%%%%%%%%%%$$$$$$$$}}$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%
@@@@@@@@@@&&@@@@@@@@@@@@%%@@@@@@@@@@&&%%$$!!!!!!}}@@&&$$$$!!    !!      !!      !!&&%%}}    !!$$%%&&&&&&&&&&&&&&&&&&&&&&&&$$%%@@&&@@@@@@@@@@@@@@&&$$%%@@&&$$$$%%%%&&&&$$%%&&@@@@&&&&&&@@&&$$$$%%&&%%&&@@@@&&@@@@@@@@@@@@@@@@%%}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%%%%%%%$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%
@@@@@@@@@@&&@@@@@@@@@@@@$$@@@@@@@@%%$$}}          &&&&$$$$!!      !!            $$&&%%}}!!!!}}%%&&&&&&&&&&&&&&&&&&&&&&@@&&$$%%@@@@@@@@@@@@@@&&%%%%&&&&&&&&$$$$%%%%$$}}%%@@&&&&&&%%&&@@%%$$%%&&%%%%&&&&@@@@&&@@@@&&&&@@&&@@@@%%}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%&&&&&&%%%%%%%%$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%
@@@@@@@@@@&&@@@@@@@@@@@@&&@@@@&&$$$$}}            $$&&$$}}    !!    !!  !!$$$$!!%%&&$$%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@%%$$%%@@@@@@@@@@@@&&$$&&&&&&&&&&%%$$}}}}}}&&@@@@@@&&%%&&@@@@%%$$%%%%%%&&&&&&@@@@@@&&%%$$$$$$$$$$&&%%$$$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%&&&&%%%%%%%%$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$!!              %%%%%%}}!!  }}}}}}%%%%$$&&&&&&&&&&%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@%%$$%%@@@@@@@@&&$$%%&&&&&&&&@@%%$$$$}}$$@@&&@@&&&&&&&&@@&&$$$$%%%%%%&&&&@@@@@@@@@@%%$$%%$$$$$$$$&&%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%&&&&%%%%%%%%$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%
@@@@@@@@@@@@&&&&@@@@@@@@@@&&%%$$!!                  &&%%}}%%!!$$%%%%&&&&&&&&&&&&&&&&$$%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@@@%%$$&&@@@@@@$$%%&&&&&&&&%%%%@@$$$$$$%%@@@@%%&&&&&&&&@@$$$$%%&&%%%%%%&&@@&&@@@@@@%%$$$$$$$$$$$$%%&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%&&&&&&%%%%%%$$$$$$$$$$$$$$%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%
@@@@&&%%$$$$!!  !!  %%@@@@$$$$}}          !!  !!%%!!&&%%$$&&%%&&&&&&&&&&&&&&&&&&@@&&$$%%&&&&&&&&&&&&@@@@@@@@@@@@@@@@@@@@%%$$&&@@%%%%&&&&&&&&$$}}$$&&@@$$$$&&@@&&&&&&%%@@@@%%$$%%&&%%%%&&&&&&@@&&&&@@@@&&$$$$$$$$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%&&&&&&%%%%%%$$$$$$$$$$$$$$%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%
@@%%$$}}              &&&&$$$$!!!!  }}}}!!%%$$$$%%%%&&$$%%&&&&&&&&&&&&&&&&&&&&&&@@&&$$%%&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@%%$$%%%%&&&&&&%%}}}}$$$$$$&&@@&&&&&&&&&&@@@@%%&&$$$$%%&&&&&&&&&&&&@@@@@@@@@@&&$$$$$$$$$$$$$$$$$$&&%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&%%%%%%$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&%%%%%%$$$$$$$$$$$$$$%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%
$$$$!!                %%&&$$}}$$%%}}%%%%%%&&&&&&&&%%&&$$%%&&&&&&&&&&&&&&&&&&&&&&@@&&$$&&@@&&@@@@@@@@@@@@@@@@@@@@@@@@@@%%$$}}%%&&$$}}$$$$$$$$%%%%$$&&@@@@@@&&&&@@&&$$$$$$%%&&%%&&&&&&@@@@@@&&@@@@@@&&$$$$$$$$$$$$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&%%%%%%$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%
$$!!    !!!!        }}&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&@@&&@@&&$$&&@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&%%$$}}$$$$$$$$$$%%%%$$$$&&@@@@&&&&&&@@%%$$%%&&$$%%%%&&&&@@@@@@&&&&@@@@@@@@%%$$$$$$$$$$$$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&%%%%%%%%$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%
}}!!!!!!%%%%!!$$!!!!}}%%@@$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&@@@@&&&&@@@@&&@@&&$$&&@@@@@@@@@@@@@@@@@@@@@@@@%%$$%%&&%%$$$$$$}}%%%%$$}}}}&&@@@@@@&&&&@@@@$$$$%%&&%%%%%%&&&&@@&&@@@@&&&&@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&%%%%%%$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%
%%%%%%&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&@@@@@@@@@@@@@@@@@@@@&&$$&&@@@@@@@@@@@@@@@@@@&&}}}}$$%%%%&&%%}}%%%%}}!!$$%%%%@@&&@@&&&&&&@@&&$$%%&&%%%%&&&&%%@@@@@@@@@@@@&&@@&&@@@@%%}}$$$$$$$$$$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&%%%%%%%%$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%
&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&@@@@&&$$&&@@@@@@@@@@@@@@@@@@@@@@@@%%$$&&@@@@@@@@@@@@&&$$}}$$%%%%$$$$%%&&%%}}}}%%%%$$$$&&&&@@&&%%&&@@@@%%$$%%%%%%&&&&&&@@&&&&@@@@@@@@@@&&@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$&&&&%%%%$$$$$$}}}}$$$$$$$$$$$$$$$$$$$$&&&&%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&%%%%%%%%$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%
&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&@@@@@@@@&&@@@@&&$$&&@@@@@@@@@@@@@@@@@@@@@@@@%%$$&&@@@@&&%%$$$$%%%%%%$$%%&&&&%%&&%%$$}}$$}}$$&&&&@@&&&&&&@@@@%%$$%%&&%%&&&&@@@@&&&&&&&&@@&&@@@@@@&&@@@@@@&&$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%$$$$}}$$$$$$$$$$$$$$$$$$$$%%&&&&%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%
&&&&&&&&&&&&&&&&&&&&&&&&%%%%&&&&&&&&&&&&@@@@@@@@@@@@&&$$@@@@@@@@@@@@@@@@@@@@@@@@@@%%$$$$%%%%$$$$%%$$$$%%%%&&$$$$%%&&@@$$$$}}$$%%&&&&@@&&&&@@@@&&%%$$%%%%%%&&@@@@@@&&@@&&@@&&&&&&@@@@@@&&@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&%%$$$$$$}}$$$$$$$$$$$$$$$$%%%%%%&&&&%%%%%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&%%%%%%$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%
&&&&&&&&&&&&&&&&&&@@&&@@%%%%&&@@@@@@@@@@@@@@@@@@@@@@%%$$@@@@@@@@@@@@@@@@&&&&%%$$&&%%$$%%$$$$$$$$%%&&%%$$$$$$%%&&%%@@@@$$$$&&@@&&%%&&&&&&@@@@%%$$%%&&%%&&&&@@@@@@@@@@@@%%%%$$$$$$$$%%&&@@@@@@&&}}$$$$$$$$$$$$$$$$$$$$$$$$%%&&%%%%$$$$}}$$$$$$$$$$%%%%%%%%%%%%&&&&%%%%$$$$$$$$$$%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%
&&&&&&&&&&&&&&&&&&@@&&@@%%%%&&@@@@@@@@@@@@@@@@@@@@@@%%$$@@@@@@@@&&%%%%$$$$%%&&&&&&$$}}}}%%&&&&%%$$$$%%%%%%%%$$$$$$@@@@%%&&&&&&%%$$%%@@&&%%$$%%&&%%&&&&@@@@@@@@@@@@@@%%$$$$$$$$$$$$$$$$&&@@&&$$}}}}}}$$$$$$$$$$$$$$$$$$$$%%&&&&%%$$$$$$$$$$$$%%%%%%%%%%%%%%%%&&&&%%%%$$$$$$$$$$%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%
&&&&&&&&&&&&&&&&&&@@&&@@%%%%&&@@@@@@@@@@@@@@@@@@@@@@%%$$%%%%$$$$%%&&@@&&&&%%$$$$&&%%$$%%$$$$$$&&&&%%$$}}$$%%%%$$}}&&&&@@&&%%%%&&&&%%&&$$%%&&%%&&&&&&@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$&&%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%$$$$$$$$%%%%%%%%%%%%%%%%%%%%&&&&%%%%%%$$$$$$$$%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%
&&&&&&&&&&&&&&&&&&&&@@@@%%%%@@@@@@@@@@@@@@&&%%$$}}&&%%%%@@@@&&%%%%$$$$$$$$&&&&%%&&%%$$%%@@&&$$}}}}%%&&$$}}%%&&&&&&&&@@&&%%&&&&&&$$$$$$%%%%&&&&&&@@&&@@@@@@@@@@&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%$$$$$$%%%%%%%%%%%%%%%%%%%%%%&&&&%%%%$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@&&&&&&@@@@@@&&&&&&&&&&&&%%
@@&&&&&&&&&&&&&&&&&&@@&&%%%%@@@@&&$$%%%%%%&&&&@@@@@@%%$$$$$$%%&&&&%%%%%%$$}}$$&&&&%%$$}}}}$$&&%%$$$$%%&&&&&&&&@@@@&&&&&&&&&&$$$$%%%%$$&&&&&&@@&&&&&&@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$@@&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&%%$$$$$$%%%%%%%%%%%%%%%%%%%%%%&&&&%%%%$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@&&&&@@@@@@@@@@@@@@@@@@&&&&&&&&%%%%
&&&&%%%%$$$$&&&&&&&&&&&&%%$$%%%%&&&&@@&&&&%%$$$$%%@@%%$$&&&&$$$$}}$$$$%%&&&&%%%%&&$$}}$$%%}}$$%%&&&&&&&&@@@@&&&&%%&&@@@@%%$$$$%%%%%%&&&&&&&&@@@@&&@@&&@@&&@@%%$$$$$$$$$$$$$$$$$$$$$$$$$$@@&&$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&&&&&%%$$$$$$%%%%%%%%%%%%%%%%%%%%%%&&&&%%%%%%$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@&&@@@@@@@@@@@@@@@@@@@@@@&&&&&&%%%%
}}}}}}}}}}}}$$%%%%%%&&&&$$%%&&%%%%%%%%%%&&&&&&&&&&&&$$}}$$$$%%&&&&&&$$$$$$$$%%&&%%$$}}}}%%&&&&&&&&@@@@@@&&%%&&&&@@&&%%%%%%%%%%&&&&&&@@&&&&@@@@&&&&@@@@@@@@%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$%%%%%%%%%%&&&&&&%%$$$$$$%%%%%%%%%%%%%%%%%%%%%%&&&&%%%%%%$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%$$$$$$$$$$$$$$&&&&@@&&&&&&&&&&&&&&&&&&&&&&@@@@@@&&@@@@@@@@@@@@@@@@@@@@@@&&&&&&%%%%
}}!!!!!!}}&&&&&&&&%%%%&&$$$$%%&&@@@@@@&&%%%%$$$$$$@@%%$$&&&&%%$$$$$$%%&&&&$$%%@@%%$$$$%%&&&&&&@@@@&&&&%%&&&&@@&&%%%%%%&&&&&&&&&&@@@@&&&&@@@@&&&&&&@@&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%&&&&%%%%$$$$$$%%%%%%%%%%%%%%&&&&&&&&&&&&%%%%%%$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%$$$$$$$$$$$$$$%%&&@@&&&&&&&&@@&&&&&&&&&&&&&&@@@@&&@@@@@@@@@@@@@@@@@@@@@@&&&&&&&&&&
}}    !!}}$$$$%%&&&&&&&&$$&&&&%%%%$$}}$$%%&&&&&&&&&&%%}}$$$$%%&&&&&&$$}}$$%%&&@@&&&&&&&&@@@@&&%%%%%%&&&&&&%%$$%%%%&&&&&&&&@@@@&&@@@@&&&&@@@@@@&&&&@@@@@@%%$$$$$$$$$$$$$$$$$$$$$$$$$$%%@@&&$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%&&&&%%%%$$$$$$%%%%%%&&&&&&&&&&&&&&&&&&&&%%%%%%$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%$$$$$$$$$$$$$$%%@@&&&&&&@@@@@@&&@@@@@@@@&&@@@@@@&&@@@@@@@@@@@@@@@@&&&&&&&&&&&&&&%%
}}  !!@@@@@@@@&&&&%%%%&&$$$$%%&&&&&&&&&&%%%%$$$$$$&&$$$$&&%%$$$$$$%%&&&&%%%%&&&&&&&&@@@@&&%%%%&&%%@@&&%%$$%%&&&&&&&&&&&&&&&&&&@@@@@@%%$$$$$$$$%%&&@@&&&&}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&%%$$$$}}}}$$%%%%%%%%%%%%%%%%%%&&&&%%%%$$$$%%&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%$$$$$$$$$$$$$$%%@@@@@@&&&&@@@@@@@@@@@@&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@&&@@&&&&&&&&%%
}}!!}}$$$$$$%%&&&&&&&&%%$$&&%%$$$$$$$$%%&&&&&&&&@@%%$$}}$$&&&&&&$$%%&&&&&&&&@@@@@@&&&&&&&&@@&&%%$$$$%%%%%%&&&&&&@@&&@@@@&&&&&&@@&&$$$$$$$$$$$$$$$$&&@@%%}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$%%&&%%$$$$$$%%%%%%%%%%%%%%%%%%%%&&&&%%%%$$$$%%&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@&&&&&&%%%%%%$$$$$$$$$$$$$$%%@@&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&%%%%
%%&&&&&&%%&&&&&&%%$$%%%%$$%%%%&&&&&&&&&&%%$$}}%%@@%%$$}}}}$$%%&&&&&&&&&&@@@@&&&&&&&&&&@@%%$$%%%%%%%%%%&&&&&&@@@@&&@@@@@@&&&&@@%%$$$$$$$$$$}}$$$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&%%$$}}$$%%%%%%%%%%%%%%%%%%%%@@&&%%%%$$$$%%&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@@@&&&&&&%%%%%%$$$$$$$$$$$$}}%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&@@@@@@@@@@@@&&&&&&%%%%
%%%%%%%%%%$$$$%%%%&&&&%%$$&&%%%%%%$$$$%%%%&&&&&&@@%%%%%%&&&&&&@@@@@@&&&&&&&&&&@@@@&&&&%%%%&&&&&&&&%%&&&&&&@@@@@@@@@@@@@@&&@@&&}}$$$$$$$$$$$$$$$$$$$$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&%%$$$$%%%%%%%%%%%%%%&&&&&&&&&&&&%%%%$$$$%%&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%$$$$$$$$&&&&&&&&&&&&&&&&@@@@&&&&@@&&&&@@@@&&&&&&&&%%%%$$%%$$$$$$$$$$$$%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&@@@@@@&&&&&&&&%%
$$%%&&&&&&&&&&&&%%%%&&$$}}$$&&&&&&&&&&%%%%%%%%&&&&&&&&&&@@@@&&&&%%%%%%&&&&@@&&%%%%%%&&&&&&&&&&@@@@&&&&&&&&@@@@@@&&@@@@@@@@&&}}$$$$$$$$$$$$$$$$$$$$%%@@$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%&&%%%%$$$$%%%%%%&&&&&&&&&&&&&&&&&&&&%%%%$$$$%%&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%$$$$$$$$&&&&@@&&&&&&&&@@@@&&&&&&&&&&&&&&&&@@&&&&%%%%%%%%$$$$$$$$$$$$$$%%@@@@@@@@@@@@@@&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&%%$$%%&&&&%%%%
&&&&%%%%%%$$$$$$%%&&&&$$$$}}%%$$$$$$%%&&&&@@@@&&@@@@@@&&&&&&&&$$%%&&&&&&%%%%%%&&&&&&&&@@@@@@@@@@&&&&&&&&@@@@@@@@&&@@@@@@&&}}}}}}$$$$$$$$$$$$$$$$$$%%&&$$$$$$$$$$$$$$%%$$%%%%%%%%%%%%%%%%&&%%%%$$$$%%&&&&&&&&&&&&&&&&&&&&&&&&%%%%$$$$%%&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%$$$$$$$$&&&&&&&&@@@@@@@@@@@@&&&&@@&&&&&&&&@@@@&&%%%%%%%%$$$$$$$$$$$$$$%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&%%}}}}!!%%&&&&%%%%
$$%%%%&&&&&&&&&&&&@@&&$$$$$$&&@@&&&&&&&&@@@@@@&&&&&&&&&&&&@@&&%%%%%%$$&&&&&&&&&&&&@@@@@@@@&&@@@@@@&&%%%%%%&&@@@@@@&&@@@@$$$$}}$$$$$$$$$$$$$$$$$$$$%%&&$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%&&&&@@%%%%$$$$%%&&&&&&&&&&&&&&&&&&&&&&&&%%%%$$$$%%&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%$$$$$$$$&&@@&&&&@@@@@@@@@@@@&&&&@@@@@@@@@@@@@@&&%%%%%%%%$$$$$$$$$$$$$$%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&%%$$$$}}!!}}&&&&&&%%&&%%%%
%%%%$$$$}}$$$$&&&&@@&&&&&&&&&&&&@@&&&&&&&&&&&&&&@@@@&&%%$$%%%%%%$$%%&&&&&&&&&&@@@@@@@@@@@@&&@@$$$$$$$$$$$$$$$$$$&&@@@@%%$$}}}}$$$$$$$$$$$$$$$$$$&&&&%%$$$$$$$$$$%%%%%%%%%%&&&&&&&&&&&&&&@@%%%%$$$$%%&&&&&&&&&&&&&&&&&&&&&&&&%%%%$$$$%%&&&&&&&&&&&&&&@@&&&&&&&&&&%%%%%%$$$$$$$$&&@@@@&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&%%%%%%$$$$$$$$$$$$$$%%@@@@@@@@@@@@@@@@@@@@@@@@&&@@@@@@&&%%$$!!!!!!$$&&@@&&&&&&&&%%&&%%%%
%%%%&&&&&&&&&&&&&&&&@@@@&&&&&&&&&&&&&&@@@@&&&&%%%%%%%%%%%%&&&&&&&&&&&&&&&&@@&&@@@@&&&&&&@@%%}}}}$$$$$$$$$$$$$$$$$$&&&&$$}}}}$$%%%%%%%%%%%%%%%%%%%%%%&&%%$$}}$$%%%%%%&&&&&&&&&&&&&&&&&&&&&&%%%%$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&%%$$$$$$%%&&&&&&&&&&&&&&@@&&&&&&&&&&%%%%$$$$$$$$$$&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&%%%%%%$$$$$$$$$$$$$$%%@@@@@@@@&&@@@@&&@@@@@@@@&&%%%%$$!!!!}}%%&&&&&&&&&&&&&&&&&&&&%%&&%%
&&&&&&&&@@@@&&&&&&&&&&&&&&@@@@&&%%%%%%&&%%%%%%%%%%&&&&&&&&&&&&&&%%&&&&&&&&@@&&@@@@&&&&@@%%}}}}$$$$$$$$$$$$%%$$%%%%&&&&$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%&&%%$$$$%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%$$$$%%&&&&&&&&&&&&&&@@@@@@&&&&&&%%%%%%$$$$$$$$&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&%%%%%%$$$$$$$$$$$$$$$$@@@@@@&&@@@@@@@@@@&&%%$$}}!!!!$$%%&&&&&&&&&&&&@@&&%%%%%%%%%%%%&&%%
&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%&&%%&&&&&&&&&&&&@@&&&&&&@@&&&&&&&&&&@@@@@@@@@@@@&&$$}}}}$$%%$$$$%%%%%%%%%%%%%%&&&&$$$$$$%%%%%%%%%%%%%%%%%%&&&&&&&&%%$$$$%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%$$$$%%@@@@&&@@@@@@@@@@@@@@&&&&&&%%%%%%$$$$$$$$&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&%%%%%%$$$$$$$$$$$$$$$$@@@@@@@@&&&&&&%%$$}}}}$$$$%%&&&&&&&&&&&&&&&&&&%%%%$$}}!!$$%%&&%%%%
&&%%&&&&&&&&&&%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@&&%%%%$$%%&&@@@@@@@@@@@@$$}}}}$$%%%%%%%%%%%%%%%%%%%%%%&&&&$$$$$$%%%%%%%%&&&&&&&&&&&&&&&&&&%%%%$$%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%$$$$&&&&&&&&&&&&@@&&&&@@&&&&&&%%$$$$$$&&@@@@&&@@@@@@@@@@@@@@@@&&&&%%%%%%$$$$$$$$&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&%%%%%%$$$$$$$$$$$$$$$$@@&&&&$$}}}}}}}}$$&&&&&&&&&&&&&&&&&&&&%%$$$$$$}}!!!!}}%%%%%%%%%%%%
%%$$$$%%%%%%%%%%%%&&&&&&&&&&&&&&&&%%&&&&&&&&&&&&&&&&@@@@@@%%}}$$$$$$%%$$%%&&@@@@@@%%}}}}$$%%%%%%%%%%%%%%%%%%%%%%%%&&%%$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&%%$$$$%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%$$$$&&&&&&&&&&&&@@@@@@&&@@&&&&%%$$$$$$&&@@@@&&@@@@@@@@@@@@@@@@&&&&%%%%%%$$$$$$$$%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&%%%%%%$$$$$$$$$$$$$$$$$$$$}}!!$$&&@@&&&&&&&&&&&&&&&&$$%%$$$$}}!!!!!!$$&&@@&&&&&&&&%%%%%%
&&&&%%&&&&&&&&&&&&@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@@@$$}}$$$$%%%%%%%%%%%%&&@@&&}}}}}}%%%%%%%%%%%%%%%%&&&&&&&&&&&&$$$$$$}}&&&&&&&&&&&&&&&&&&&&&&&&&&%%$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%$$$$&&&&&&&&&&@@@@@@@@@@@@&&&&%%$$$$$$&&@@@@@@@@@@@@@@@@@@@@@@&&&&%%%%$$$$$$$$$$%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&%%%%%%$$$$$$$$$$$$$$}}}}&&@@&&&&&&&&&&&&&&%%%%%%%%%%$$!!  !!%%&&@@@@&&&&&&&&&&&&%%%%%%%%
&&&&&&&&&&&&&&&&&&&&&&&&&&@@&&$$$$$$$$$$%%&&&&&&@@&&@@$$}}$$%%%%%%%%%%%%%%%%&&&&$$$$}}$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%$$}}$$&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%$$&&&&&&&&&&&&&&&&&&&&@@@@&&&&&&%%%%$$$$&&@@&&@@@@@@@@@@@@@@&&&&%%%%$$$$$$&&@@@@@@@@@@@@@@@@@@@@@@&&&&%%%%%%$$$$$$$$%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&%%%%%%$$$$$$$$$$}}$$$$&&&&&&&&@@&&%%&&%%$$$$}}!!!!$$%%&&&&&&&&&&@@&&&&&&&&&&%%%%%%%%%%%%
&&&&&&&&&&&&&&&&&&@@&&&&&&$$}}$$%%%%%%%%%%%%&&&&&&&&$$}}$$%%%%%%%%%%%%%%&&&&&&&&%%$$$$%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%$$}}&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%$$$$&&&&&&&&&&&&&&&&&&@@&&%%$$&&&&%%%%$$$$&&@@@@@@@@@@@@@@@@@@&&&&%%%%$$$$$$&&@@@@@@@@@@@@@@@@@@@@@@&&&&%%%%%%$$$$$$$$%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&%%%%%%$$$$$$$$$$$$$$$$&&&&&&&&%%%%%%$$!!}}}}$$%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%
$$$$$$%%&&&&&&&&&&&&&&&&$$}}$$%%%%%%%%%%%%%%%%&&@@%%}}$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$}}%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%$$&&&&&&&&&&&&&&&&&&&&&&@@&&&&%%$$$$&&&&&&&&&&@@&&@@&&%%%%%%%%&&&&%%$$$$$$%%&&@@@@@@@@@@@@@@@@&&&&%%%%$$$$$$&&@@@@@@@@@@@@@@@@@@@@@@&&&&%%%%%%$$$$$$$$%%@@@@@@@@@@@@@@@@@@@@@@@@&&&&%%$$}}$$&&&&%%%%%%$$$$$$$$$$$$$$$$&&%%%%$$}}!!!!$$%%&&&&&&&&&&&&&&&&&&&&&&&&%%%%&&&&&&%%%%%%%%%%%%%%
%%%%%%%%%%%%%%&&&&&&&&$$}}$$%%%%%%&&&&&&&&&&&&&&&&}}$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$}}$$%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%$$&&&&&&&&@@@@@@@@@@&&&&@@&&&&%%$$$$&&&&@@@@@@&&@@&&%%%%%%%%%%&&&&%%$$$$$$$$$$}}&&&&%%&&&&&&@@&&&&%%%%$$$$$$&&@@@@@@@@@@@@@@@@@@@@@@&&&&%%%%%%$$$$$$$$%%@@@@@@@@@@@@@@&&&&%%$$}}!!}}$$%%%%&&&&&&%%%%%%$$$$$$$$$$}}$$$$}}}}}}$$%%&&@@&&&&&&&&&&&&&&&&&&%%&&&&&&&&&&%%%%$$$$}}$$%%%%%%%%%%
%%%%%%%%%%%%%%%%&&&&$$}}%%&&&&&&&&&&&&&&&&&&&&&&&&}}$$%%&&&&&&&&&&&&&&&&&&&&&&&&$$}}}}$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%$$$$&&@@@@@@@@@@@@@@@@@@&&@@&&&&%%$$$$&&&&&&@@@@@@&&%%%%%%%%%%%%&&&&%%$$$$$$$$%%}}%%@@&&&&&&&&&&&&&&%%%%$$$$$$&&@@@@@@@@@@@@@@@@@@@@@@&&&&%%%%%%$$$$$$$$%%@@@@@@&&%%$$$$}}}}}}$$%%&&@@@@@@&&&&&&&&%%%%%%$$$$$$$$$$$$$$$$&&&&@@&&&&&&&&&&&&&&&&&&@@&&&&@@&&&&%%%%%%%%$$}}!!!!}}%%%%%%$$$$$$
&&&&&&&&&&&&&&&&&&%%}}$$%%&&&&&&&&&&&&&&&&&&&&&&&&}}}}%%&&&&&&&&&&&&&&&&&&&&&&&&%%$$$$@@&&&&&&&&&&&&&&&&&&&&&&@@@@&&%%$$$$&&@@@@@@@@@@@@@@@@@@&&@@&&&&%%$$$$&&@@@@@@@@&&%%%%%%%%%%%%$$&&&&%%$$$$$$%%%%}}%%%%&&&&&&&&&&&&&&%%%%$$$$$$&&@@@@@@@@@@@@@@@@@@@@@@&&&&%%%%%%$$$$$$$$$$%%$$$$!!}}$$&&&&@@&&&&&&&&&&&&&&&&&&&&&&%%%%%%$$$$$$$$$$}}$$$$@@&&@@@@&&&&&&&&&&&&@@&&@@&&%%%%%%%%$$}}!!  !!$$&&@@&&$$%%%%%%%%%%
&&&&&&&&&&&&&&&&&&&&}}$$&&&&&&&&&&&&&&&&&&&&&&&&%%$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&%%$$%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&%%$$$$&&@@@@@@@@@@@@@@@@@@@@@@&&&&%%$$$$&&@@&&@@&&%%%%%%%%%%$$}}}}&&&&%%$$$$$$%%%%$$%%%%%%&&&&&&&&&&&&%%%%$$$$$$&&@@@@@@@@@@@@@@&&@@@@@@&&&&%%%%%%$$$$$$$$$$$$%%&&@@@@@@@@&&&&@@&&%%@@&&&&%%%%%%&&&&%%%%%%$$$$$$$$$$$$}}$$&&&&&&&&&&&&&&&&&&&&%%%%$$$$$$!!    }}%%&&&&&&&&&&&&&&&&%%%%%%%%%%
&&&&&&&&&&&&&&&&&&%%}}$$&&&&&&&&&&&&&&&&&&&&&&&&%%$$}}%%&&&&@@&&&&&&@@@@@@@@@@&&%%$$%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&%%$$$$&&@@@@@@@@@@@@@@@@@@@@@@&&&&%%$$$$&&@@@@@@%%%%%%%%%%}}!!!!}}&&&&%%$$$$$$!!}}}}%%%%$$&&&&&&&&&&&&%%%%$$$$$$&&@@@@@@@@@@@@@@@@@@&&%%&&&&%%%%$$$$$$$$$$%%&&&&&&%%&&&&@@&&&&&&&&%%$$$$}}!!$$%%&&%%%%%%%%$$$$$$$$$$$$$$$$@@@@&&@@&&&&%%%%%%$$}}!!!!}}$$%%&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%
&&&&&&&&&&&&&&&&&&%%$$}}%%&&&&&&&&&&&&&&&&&&&&&&%%$$$$&&&&@@&&&&&&&&@@@@@@@@@@&&%%$$%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&%%$$$$&&@@@@@@@@@@@@@@@@@@@@@@&&&&%%$$$$&&@@@@%%%%%%%%$$}}!!!!!!}}&&&&%%$$$$$$    !!%%%%$$%%&&&&&&&&&&%%%%$$$$$$@@@@@@@@&&&&%%$$}}}}$$%%&&&&%%%%$$$$$$$$$$$$&&&&&&&&&&&&%%%%$$}}}}}}$$&&&&&&@@&&&&&&%%%%%%$$$$$$$$$$$$$$$$&&&&%%%%%%$$}}!!}}}}$$%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%$$
&&&&&&&&&&&&&&&&&&%%}}$$&&&&&&&&&&&&&&&&&&@@@@&&&&$$$$@@&&@@&&@@&&@@@@@@@@@@@@&&%%$$%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&%%$$$$&&@@@@@@@@@@@@@@@@@@@@@@&&&&%%$$$$%%&&&&%%%%%%$$}}!!!!!!!!}}&&%%%%$$$$$$      }}%%%%%%&&&&&&&&&&%%%%$$$$$$$$$$%%$$}}$$$$%%&&&&@@&&&&&&%%%%$$$$$$$$$$%%%%%%$$}}}}$$}}}}%%&&&&@@@@&&@@&&&&&&&&&&%%%%%%$$$$$$$$$$$$$$$$$$}}}}}}}}}}%%&&@@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%$$$$
&&&&&&&&&&&&&&&&&&%%$$%%@@&&&&@@@@@@@@@@@@@@@@&&&&$$$$&&@@@@@@@@@@@@@@@@@@@@@@&&%%$$%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&%%$$$$&&@@@@@@@@@@@@@@@@@@@@&&&&&&%%$$$$&&&&%%%%%%%%}}!!!!!!!!!!}}&&%%%%$$$$}}    !!!!}}%%%%&&%%%%&&&&%%%%$$$$$$%%&&&&@@@@@@&&&&&&&&&&%%&&&&%%%%$$$$$$$$$$}}}}}}}}$$&&@@&&&&&&&&&&&&&&@@&&&&&&&&&&&&%%%%%%$$$$$$$$$$}}$$$$$$%%&&@@&&&&&&&&&&&&@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%$$$$$$
&&&&&&&&&&@@@@@@&&%%$$&&@@@@@@@@@@@@@@@@@@@@@@&&%%$$$$@@@@@@@@@@@@@@@@@@@@@@@@&&%%$$%%&&@@@@@@@@@@@@@@@@@@@@@@@@@@&&%%$$$$&&@@@@@@@@@@@@@@@@@@%%&&&&&&%%$$$$&&&&%%%%%%}}!!!!!!!!!!!!$$&&&&%%$$$$}}  !!!!!!}}}}}}}}}}$$&&%%%%%%$$$$$$&&&&@@&&@@@@@@&&&&&&&&%%&&&&%%%%$$$$$$$$$$%%@@@@&&&&&&@@&&&&&&@@&&&&&&&&@@&&&&&&&&&&%%%%%%$$$$$$$$$$$$}}$$@@@@&&&&&&&&@@@@&&&&&&&&&&&&&&&&&&&&&&&&@@&&%%%%%%%%%%%%%%%%%%$$}}
&&@@@@@@&&@@@@&&&&%%$$&&@@@@@@@@@@@@@@@@@@@@@@&&%%$$$$@@@@@@@@@@@@@@@@@@@@@@@@&&%%$$%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&%%$$$$&&@@@@@@@@@@@@@@&&%%@@&&&&%%%%$$$$&&%%%%%%}}}}!!!!!!!!!!!!$$&&%%%%$$$$}}!!  !!}}&&&&&&&&&&&&&&%%%%%%$$$$$$&&@@&&@@&&&&&&%%$$}}!!!!%%&&%%%%%%$$$$$$$$%%&&@@&&&&&&&&@@&&@@&&@@&&&&&&%%%%%%%%&&&&%%%%%%$$$$$$$$$$}}$$$$@@&&&&&&&&@@&&&&&&&&&&&&&&&&&&@@&&&&%%$$%%$$%%$$%%%%%%%%%%%%%%$$}}
&&@@@@@@&&@@@@&&&&%%$$&&@@@@@@@@@@@@@@@@@@@@@@&&%%$$$$@@@@@@@@@@@@@@@@@@@@@@@@&&$$}}%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&%%$$$$@@@@@@@@@@@@&&%%&&&&&&@@&&%%%%$$$$&&%%%%%%}}!!!!!!!!!!!!!!$$&&%%%%$$$$}}  !!  $$&&&&&&&&&&&&&&%%%%%%$$$$$$%%$$$$}}}}}}$$%%&&&&&&&&&&&&%%%%$$$$$$$$$$%%&&@@@@&&&&@@&&&&%%%%$$$$$$!!  }}$$%%&&&&%%%%%%%%$$$$$$$$}}}}$$@@&&&&@@&&&&&&&&&&&&@@&&&&%%$$%%%%%%$$}}  !!%%%%%%%%%%%%%%%%%%$$}}
&&@@@@@@&&@@@@@@&&%%$$&&@@@@@@@@@@@@@@@@@@@@@@&&%%$$$$@@@@@@@@@@@@@@@@@@@@@@@@&&$$$$&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&%%$$$$@@@@@@@@@@&&&&&&&&&&&&@@&&%%%%$$$$&&%%%%%%}}!!!!}}!!!!!!!!$$&&%%%%$$$$}}      $$&&&&&&&&%%%%&&%%%%$$$$$$$$%%%%%%&&@@&&&&&&&&&&&&&&&&&&%%%%%%$$$$$$$$$$&&&&%%%%%%$$$$}}!!!!!!%%%%&&&&&&&&&&&&&&%%%%%%%%$$$$$$$$}}}}$$@@@@&&@@&&&&&&%%$$%%%%%%$$$$}}!!!!    !!$$%%%%%%%%%%%%%%%%%%%%}}}}
@@@@@@@@@@@@@@@@&&%%$$&&@@@@@@@@@@@@@@@@@@@@@@&&%%$$$$@@@@@@@@@@@@@@@@@@@@@@@@&&$$}}%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%$$$$@@@@@@&&%%&&@@&&&&&&&&@@&&%%%%$$$$&&%%$$$$!!!!}}}}!!!!!!!!$$&&%%%%$$$$}}!!}}}}}}}}}}}}}}}}$$&&%%%%$$$$$$$$&&&&&&&&&&&&&&&&@@&&@@&&&&%%%%%%%%$$$$$$$$$$$$}}}}}}}}}}$$%%&&@@@@@@&&&&&&&&&&&&&&&&%%%%%%$$$$$$$$$$}}}}$$&&&&%%%%$$$$$$$$$$$$}}!!    !!$$%%&&&&&&@@&&%%%%%%%%%%%%%%%%$$}}}}
@@@@@@@@@@@@@@@@&&%%$$&&@@@@@@@@@@@@@@@@@@@@@@&&%%$$$$@@@@@@@@@@@@@@@@@@@@@@@@%%$$}}&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%$$$$@@@@&&%%&&@@&&&&%%%%%%%%&&%%%%$$$$$$$$}}$$!!!!}}}}!!!!!!!!$$&&%%$$$$$$$$$$$$$$%%%%&&&&@@@@@@&&%%%%$$$$$$$$&&&&&&&&&&&&&&@@@@&&&&&&&&%%%%%%$$$$$$$$$$$$$$%%&&&&@@@@@@&&&&&&&&@@&&&&@@@@&&&&&&&&%%%%%%$$$$$$$$$$}}}}}}%%$$}}}}}}!!!!!!!!}}$$%%&&&&@@&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%$$}}}}
&&&&@@@@@@@@@@@@&&%%$$&&@@@@@@@@@@@@@@@@@@@@@@&&%%$$$$@@@@@@@@@@@@@@@@@@@@@@@@%%$$}}&&@@@@@@@@@@@@@@@@@@@@@@@@&&&&%%$$$$$$%%$$$$$$$$$$$$$$$$$$%%%%&&%%$$$$$$}}}}}}$$!!!!!!}}!!!!!!!!$$&&%%$$$$$$%%&&&&&&@@&&&&&&&&&&&&&&%%%%$$$$$$$$@@@@&&&&&&&&&&%%$$$$$$$$%%%%%%%%$$$$$$$$$$$$@@&&&&&&&&@@&&&&&&&&&&&&&&@@&&@@&&&&&&%%%%%%%%%%$$$$$$$$$$}}}}!!  !!!!$$%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%$$}}}}
&&&&&&@@@@@@@@@@&&%%$$&&&&@@@@@@@@@@@@@@@@@@@@&&%%$$$$@@@@@@@@@@@@@@@@@@@@@@&&%%$$}}&&&&&&&&%%%%%%$$$$$$}}}}}}}}$$%%$$$$$$%%&&&&&&&&&&&&&&%%&&%%%%&&%%%%$$$$}}}}$$$$!!!!!!!!!!!!!!!!$$&&%%%%$$$$%%&&&&&&&&%%&&&&&&@@&&&&%%%%$$$$$$$$%%%%%%$$}}!!!!}}!!$$%%&&&&&&%%%%$$$$$$$$$$$$@@&&&&&&&&@@&&&&@@&&@@&&&&&&@@&&&&&&%%%%%%%%%%%%$$$$$$$$$$}}}}$$@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%$$}}}}
@@&&&&@@&&@@@@&&&&%%$$&&@@@@&&&&@@&&@@@@@@&&&&&&%%$$$$%%%%%%%%%%%%$$$$$$$$$$%%%%$$}}%%%%%%&&&&&&&&&&@@@@&&&&&&&&&&%%$$$$$$&&&&&&%%&&&&&&&&%%%%&&&&&&%%$$$$$$}}}}$$%%}}}}}}}}!!!!!!!!%%&&%%$$$$$$%%&&&&&&&&@@&&&&&&&&%%&&%%%%$$$$$$$$}}}}$$%%&&@@@@@@@@@@&&@@&&%%%%%%$$$$$$$$$$$$&&&&&&&&&&&&@@&&&&&&&&%%%%%%%%%%%%%%%%%%$$$$$$$$$$$$}}}}}}}}}}}}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%$$}}}}
$$%%$$$$$$$$$$%%%%$$$$$$%%%%%%%%%%%%%%%%&&&&%%&&%%$$%%&&&&&&&&&&&&&&&&&&&&&&&&%%$$}}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%$$$$$$&&&&%%%%%%%%%%$$}}}}%%&&&&%%$$$$$$}}$$$$%%}}}}}}}}!!}}}}!!%%&&%%$$$$$$%%&&%%%%$$$$$$}}}}}}}}&&%%%%$$$$$$$$@@@@@@@@@@&&&&@@@@&&&&@@&&%%%%%%$$$$$$$$$$$$@@&&&&&&%%%%$$%%$$}}}}!!  !!!!$$%%&&%%%%%%%%%%$$$$$$$$$$}}}}}}$$@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%$$}}}}
&&&&&&&&&&&&&&&&&&$$$$&&&&@@&&&&@@&&&&&&&&&&&&&&%%$$%%&&&&&&&&&&&&&&&&&&&&&&&&%%$$}}&&&&&&&&&&%%&&%%%%%%%%%%$$$$$$%%$$$$}}}}$$$$}}$$$$$$%%}}}}$$$$&&%%$$$$$$}}}}$$%%}}}}}}!!}}}}}}}}%%&&%%$$$$$$$$$$$$%%%%&&&&&&&&&&&&&&%%%%$$$$$$$$&&&&&&@@@@&&&&@@@@@@&&@@&&%%%%%%$$$$$$$$$$$$%%%%$$}}}}!!!!}}}}$$%%&&&&&&&&&&&&&&%%%%%%%%$$$$$$$$$$$$}}}}$$}}$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%$$}}}}
%%&&&&%%&&&&&&&&%%$$$$&&&&&&&&&&&&&&%%%%&&%%%%&&%%$$$$%%%%%%%%%%%%%%%%%%%%$$%%%%$$}}$$$$%%$$%%%%%%%%%%%%%%%%$$%%&&%%$$$$$$&&&&&&&&%%&&&&&&$$$$}}}}&&%%$$$$$$}}}}$$$$}}!!}}}}}}$$$$$$&&&&%%$$$$$$&&@@@@@@&&&&&&&&&&&&&&&&%%%%$$$$$$$$@@&&@@@@&&@@@@@@@@&&&&&&&&%%%%%%$$$$$$$$$$}}!!}}}}%%%%&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%$$$$$$$$}}}}}}}}}}}}}}&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@&&&&&&&&%%%%%%%%%%%%%%%%%%$$}}}}
$$$$%%$$$$$$$$$$%%$$$$%%$$%%$$$$%%$$%%%%%%%%%%%%$$$$%%&&&&&&&&&&&&&&&&&&&&&&&&%%$$}}&&@@@@@@@@&&&&&&&&&&%%%%&&&&&&%%$$$$$$&&&&&&&&&&&&&&&&%%!!}}}}&&%%$$$$$$}}}}$$$$!!!!!!$$&&&&&&&&&&&&%%$$$$$$&&@@@@&&@@&&&&&&@@&&&&&&%%%%$$$$$$$$@@&&&&&&&&%%%%%%$$}}}}}}%%%%%%%%$$$$$$$$}}$$@@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%$$$$}}$$$$$$$$$$$$$$$$}}$$$$$$$$$$%%&&&&&&&&&&&&&&&&&&&&@@@@&&&&&&&&%%%%%%%%%%%%%%%%%%$$}}}}
&&&&&&&&&&&&&&&&%%$$$$&&&&&&&&&&&&&&&&&&&&&&&&%%$$$$%%&&&&&&&&&&&&&&&&&&&&&&&&%%$$}}&&&&&&&&&&&&&&&&&&$$&&&&&&%%&&%%$$$$$$%%%%%%&&&&&&&&%%!!}}}}$$&&%%$$$$$$}}}}}}}}!!!!!!$$&&&&&&&&&&&&%%$$$$$$&&&&@@@@@@@@@@@@@@&&&&&&%%%%$$$$$$$$$$$$}}}}}}!!}}}}$$%%&&&&&&%%%%%%$$$$$$$$$$$$@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%$$}}$$$$$$$$$$$$$$$$}}}}$$$$$$$$$$$$@@&&&&&&&&&&@@&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$$}}
&&&&&&&&&&&&&&&&%%$$$$&&&&&&&&&&&&&&&&&&&&&&&&%%$$$$%%&&&&&&&&&&&&&&&&&&&&&&&&%%$$}}&&&&&&%%%%%%%%$$$$$$$$$$$$}}%%%%$$$$}}}}!!  }}%%%%}}$$$$}}}}}}&&%%$$$$$$}}}}}}}}!!!!  $$&&&&&&&&&&%%%%$$$$$$&&&&&&%%%%%%$$%%%%$$$$&&%%%%$$$$$$$$&&&&@@@@@@&&&&&&&&&&&&&&%%$$$$$$}}}}}}}}}}}}@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%$$$$$$$$$$$$$$$$$$$$$$}}$$$$$$$$$$$$&&&&&&&&%%%%$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}}}}
%%%%%%%%%%$$$$%%%%$$}}$$%%$$$$$$$$$$$$$$$$$$$$%%$$$$$$$$$$%%$$%%%%$$%%%%$$%%%%%%$$}}%%%%&&%%%%%%$$%%%%%%&&&&&&&&&&%%$$$$$$&&&&$$$$}}!!}}}}}}}}}}$$&&%%$$$$}}}}}}$$}}!!}}}}%%%%%%%%%%&&%%%%$$$$$$}}}}$$$$$$$$%%%%&&&&&&&&%%$$$$$$$$$$@@&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%$$$$$$$$$$$$&&@@@@@@&&&&&&&&&&&&&&&&&&&&&&&&&&%%$$$$$$}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$%%%%%%%%%%%%%%%%$$$$}}}}!!!!  !!%%%%%%%%%%%%%%%%%%%%$$}}
&&&&&&&&&&&&&&&&%%$$$$&&&&&&&&&&&&&&&&&&&&&&&&%%$$$$&&&&&&&&&&&&&&&&&&&&&&&&%%%%$$}}&&&&&&&&%%%%&&&&&&&&&&&&&&&&&&%%$$$$$$&&$$}}}}}}$$}}!!}}}}$$$$&&%%$$$$$$}}}}}}}}}}$$$$$$%%%%%%%%&&%%%%$$$$$$&&&&&&&&&&&&&&&&&&&&&&%%$$$$$$$$}}}}&&&&@@@@&&&&&&&&&&&&&&&&%%%%$$$$$$$$}}}}}}}}}}@@@@&&@@&&&&&&&&&&&&@@@@&&&&&&&&%%$$$$$$}}$$}}}}}}}}}}}}}}}}$$$$$$$$$$$$}}}}!!!!  !!$$}}!!!!}}%%%%%%%%%%%%%%%%%%%%%%%%%%%%$$}}
&&&&&&&&&&&&&&&&%%$$$$&&&&&&&&&&&&&&&&&&&&&&&&%%$$$$&&&&&&&&&&&&&&&&&&&&&&&&%%%%$$$$&&&&%%%%&&&&&&&&&&%%&&&&&&%%%%%%$$$$$$&&%%}}$$$$%%}}}}!!}}$$$$&&%%$$$$$$%%&&&&&&&&&&&&&&&&@@@@&&&&%%$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&%%%%$$$$$$}}}}&&&&@@&&&&&&&&&&&&&&&&&&%%}}}}$$}}}}}}}}}}$$}}$$$$&&&&&&&&&&&&&&%%&&&&&&&&&&&&%%$$$$$$$$$$}}}}}}}}}}}}}}}}}}}}$$$$$$}}}}$$$$%%%%&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%$$}}
%%%%%%%%%%&&%%&&%%$$$$&&%%%%%%%%%%%%%%%%%%%%%%%%$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%$$}}%%$$}}%%%%%%$$%%%%%%$$$$$$!!%%%%$$$$$$%%%%}}$$$$$$$$}}}}}}}}$$&&%%$$$$}}&&&&&&&&&&&&&&&&&&&&&&&&%%%%$$$$$$}}&&&&&&&&&&&&&&@@&&&&&&%%$$$$$$$$$$}}$$&&&&&&@@@@&&&&&&&&&&&&%%}}}}$$$$$$$$$$$$$$$$$$$$&&%%%%%%%%%%%%$$$$$$&&%%&&&&%%$$$$$$$$}}}}}}}}}}}}}}}}}}$$$$$$$$$$%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%$$}}
%%%%%%%%%%%%$$%%%%$$$$%%$$%%%%%%%%%%%%%%%%%%%%%%$$$$$$%%$$%%%%%%%%&&%%%%%%%%%%%%$$}}%%$$}}%%&&%%%%&&%%%%%%%%%%&&%%%%$$$$}}}}}}}}$$}}$$$$}}}}}}}}$$%%%%$$$$}}&&&&&&&&&&&&&&&&&&&&&&&&%%%%$$$$$$}}&&&&&&&&&&&&&&&&&&&&&&$$}}$$$$$$$$$$}}}}&&&&&&&&%%%%%%&&&&&&$$}}}}}}}}$$$$}}}}$$$$}}}}}}}}!!!!!!}}}}}}}}$$&&&&&&&&%%}}$$$$$$}}$$}}}}$$}}}}}}$$$$$$$$$$$$%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%}}}}
&&&&&&&&&&&&&&&&%%$$$$&&&&&&&&&&&&&&&&&&&&&&&&%%$$}}&&&&&&&&&&&&&&&&&&&&&&&&%%%%$$$$&&%%$$%%&&&&&&&&&&%%&&&&&&&&%%%%$$}}}}}}}}}}$$}}$$$$!!}}}}!!%%%%$$$$$$$$&&&&&&&&&&&&&&&&&&@@&&%%$$$$$$$$}}}}$$&&&&&&&&&&&&&&&&&&%%$$$$$$}}$$$$$$$$$$$$$$}}}}}}!!!!&&&&&&$$}}}}}}$$$$$$$$$$}}$$}}}}&&@@@@@@@@&&&&&&&&&&&&&&&&&&%%}}}}$$$$}}}}}}}}}}}}}}}}}}}}}}$$$$}}%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%$$}}
&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&%%$$}}&&&&&&&&&&&&&&&&&&&&&&&&%%%%$$}}&&%%}}&&&&%%%%&&$$&&&&&&&&&&%%$$$$}}}}}}}}}}$$}}$$$$!!!!!!%%&&%%$$$$}}}}$$&&&&&&&&&&&&&&%%%%&&&&$$}}$$$$}}$$$$$$$$$$}}}}}}$$&&&&%%}}}}$$$$$$$$$$$$$$%%&&&&&&@@@@&&&&&&&&$$}}}}}}}}$$$$$$$$$$$$$$}}&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%}}}}$$$$}}}}}}}}}}}}}}}}}}}}}}}}$$$$%%&&%%%%&&&&&&&&&&&&&&&&&&@@@@%%%%%%%%%%%%%%%%%%%%%%$$}}
$$$$$$$$$$$$%%%%$$$$}}%%%%%%%%%%%%%%%%%%%%%%%%$$$$}}%%&&&&%%&&&&&&&&&&&&&&&&$$$$}}}}%%%%$$%%%%%%$$%%%%&&&&&&&&%%%%$$$$}}}}$$}}}}}}}}}}}}!!!!$$&&&&$$}}}}}}}}$$$$$$}}}}$$}}}}$$%%&&&&$$}}}}$$$$$$$$$$&&&&&&&&&&&&&&&&%%$$$$$$$$$$$$$$$$$$%%&&&&&&&&&&&&&&&&&&$$}}}}}}}}$$$$$$$$$$$$$$}}&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%}}}}}}}}}}}}}}}}}}}}$$$$}}$$}}$$$$$$%%&&&&@@&&&&&&&&&&&&&&&&&&@@@@&&%%%%%%%%%%%%%%%%%%%%$$}}
%%%%%%%%%%%%%%%%$$}}}}}}%%%%%%%%%%%%$$$$$$%%%%$$}}}}}}$$%%$$$$$$$$$$$$}}$$%%%%}}}}}}}}$$!!}}}}}}!!  $$%%%%%%%%%%%%}}}}}}$$}}}}}}}}!!}}!!}}$$%%&&&&$$$$}}$$}}}}%%@@&&&&@@&&&&&&&&&&&&$$}}}}$$$$$$$$$$&&&&@@&&&&&&&&&&%%$$$$$$$$$$$$$$$$$$%%&&&&&&&&@@&&&&&&&&$$}}}}}}}}$$$$$$$$$$$$$$}}&&@@&&@@&&&&&&&&&&&&&&&&&&&&%%}}}}}}}}}}}}}}}}}}}}}}$$}}$$$$$$$$$$%%@@@@@@@@&&&&&&@@@@&&&&&&@@&&&&%%%%%%%%%%%%%%%%%%%%$$}}
%%%%%%%%%%&&%%%%$$}}}}}}&&&&&&&&%%%%%%%%&&%%%%$$}}}}}}%%&&&&&&&&&&&&&&&&%%%%%%}}}}}}}}$$$$%%%%%%%%}}}}}}$$$$%%%%%%}}}}}}}}$$}}!!!!!!!!!!}}$$%%&&&&$$$$}}$$$$$$$$&&@@&&&&&&&&&&&&&&&&}}}}$$$$$$$$$$$$&&&&&&&&&&&&&&&&%%$$$$$$$$$$$$$$$$$$%%&&@@@@&&@@&&&&&&&&$$}}}}}}$$$$$$$$$$$$$$$$$$&&@@@@&&&&&&&&&&@@@@&&&&&&&&%%}}}}}}}}}}}}}}$$$$}}$$$$$$$$$$$$$$$$%%&&@@@@&&&&&&&&@@&&&&&&&&@@@@&&%%%%%%%%%%%%%%%%%%%%$$}}
%%%%%%%%%%%%%%%%$$}}}}}}&&&&&&&&&&&&&&&&%%%%%%$$}}}}}}%%&&&&&&&&&&&&%%&&%%%%%%}}}}}}}}$$}}!!}}!!!!!!!!!!    $$%%%%}}}}}}}}}}!!            }}%%&&&&$$$$$$$$$$$$$$@@@@&&&&&&&&&&&&&&&&}}$$$$$$$$$$$$$$&&@@&&&&@@&&&&&&%%$$$$}}$$$$$$$$$$}}%%&&@@@@&&@@&&&&&&&&$$}}}}}}$$$$$$$$$$$$$$$$$$&&@@@@&&&&@@&&&&&&@@&&&&&&&&$$}}}}}}}}$$$$}}$$$$$$$$}}$$$$}}}}$$$$%%&&&&@@&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%$$}}
$$$$$$$$$$$$%%%%$$}}}}}}%%%%%%%%%%%%%%%%%%%%%%$$}}}}}}%%&&&&&&&&&&&&%%&&%%%%%%}}}}}}}}$$$$!!}}!!!!!!!!!!!!  %%%%%%}}}}}}}}}}!!            }}%%%%&&$$}}}}}}}}}}%%&&@@&&@@@@&&&&&&&&&&}}$$$$}}}}}}$$$$&&&&&&&&&&&&&&&&%%}}$$$$$$$$}}}}}}}}%%&&&&&&&&&&&&&&&&%%$$$$$$}}$$$$$$$$$$$$$$$$$$%%&&&&&&&&&&&&&&&&&&&&&&&&&&$$}}}}}}$$}}$$}}$$$$$$$$}}$$}}}}$$$$$$%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%$$}}
$$$$$$$$$$$$%%%%$$$$$$$$}}}}}}}}$$$$$$$$%%%%%%$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%}}}}}}}}$$$$!!$$!!!!!!!!!!!!  $$%%%%}}}}}}}}}}!!!!!!!!!!!!!!$$%%%%%%}}}}}}}}}}}}$$&&%%%%%%$$}}}}$$%%&&$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%&&$$}}}}}}}}$$$$}}}}}}%%&&&&&&&&&&&&&&&&%%}}}}}}$$$$$$$$$$$$$$$$$$}}%%&&&&&&&&&&&&&&&&&&&&%%&&&&$$}}}}}}$$$$}}$$$$}}$$$$$$$$}}}}$$}}}}$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%}}}}
$$%%%%%%%%$$%%%%%%$$$$%%}}!!}}}}%%%%$$$$%%%%%%%%%%$$$$%%$$%%%%%%%%%%%%%%$$%%%%}}}}}}}}!!  !!}}    !!!!!!!!  $$%%%%$$$$$$$$$$$$%%$$$$$$$$$$$$%%%%%%$$$$$$$$$$}}}}}}}}$$$$$$$$$$%%%%&&$$$$$$$$$$}}$$$$$$$$$$$$$$$$&&%%$$$$$$$$$$}}$$$$$$}}$$$$$$$$$$$$$$%%&&%%}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$}}}}}}}}}}$$}}}}$$}}}}}}}}$$}}}}}}$$$$%%%%%%%%%%%%%%%%%%%%$$$$}}}}}}%%%%%%%%%%%%%%%%%%%%$$}}
}}$$$$$$$$$$$$$$$$$$}}}}!!!!}}}}%%%%$$%%%%%%%%$$%%$$}}$$$$%%%%%%%%$$%%$$$$$$$$}}}}}}}}!!}}!!!!!!  !!  !!!!  $$%%$$%%$$$$%%$$%%%%$$%%%%$$$$%%%%%%%%$$$$$$$$$$}}!!!!$$$$$$$$$$$$%%%%%%$$$$}}}}$$$$}}$$$$}}}}}}}}$$%%%%$$$$}}}}$$!!!!!!!!!!}}}}}}}}}}}}$$&&%%%%}}$$$$$$$$}}$$$$$$$$}}$$$$$$}}$$}}}}}}$$$$$$$$&&%%&&&&$$}}$$$$$$$$$$$$$$$$}}}}}}}}}}}}}}}}}}!!}}}}}}}}}}}}}}}}}}}}}}}}$$}}}}%%%%%%%%%%%%%%%%%%%%$$}}
$$$$$$$$$$$$%%}}}}}}!!  !!!!}}}}}}}}!!}}}}}}}}}}!!!!!!}}}}$$$$$$$$$$$$}}!!!!}}!!}}}}}}}}}}!!!!!!!!!!!!!!!!  $$%%$$&&%%$$}}!!%%%%$$}}!!$$%%%%%%%%%%%%%%$$$$$$}}!!}}$$$$$$$$$$$$%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%$$$$}}$$$$!!    }}}}}}}}}}}}$$$$$$%%%%%%}}}}}}$$}}$$}}}}}}}}}}$$}}}}}}$$}}$$}}$$$$$$}}%%%%%%%%%%$$$$$$}}}}}}$$$$$$$$$$$$$$$$$$$$}}!!$$$$$$$$%%$$$$$$$$$$$$$$$$$$$$}}%%%%%%%%%%%%%%%%%%%%$$}}
$$$$$$$$$$$$$$}}}}}}!!  !!}}}}}}}}}}}}$$$$%%$$$$!!!!!!}}}}$$}}$$}}$$}}}}!!}}$$$$$$$$}}$$$$}}!!}}}}$$!!!!!!!!}}$$}}%%$$}}!!  %%%%$$!!  $$$$%%!!!!$$%%%%$$$$$$}}!!}}$$$$$$$$$$$$%%%%%%$$$$}}}}$$$$$$$$$$$$$$$$$$%%%%%%$$$$}}$$$$!!!!!!}}}}$$$$$$$$$$$$$$%%&&%%$$}}$$$$}}}}}}}}}}}}}}$$$$$$}}$$$$$$$$}}$$}}$$%%%%%%%%%%$$}}$$}}}}}}}}}}$$$$$$$$$$$$$$$$!!!!$$$$$$$$%%$$$$}}$$$$}}$$$$$$$$}}%%%%%%%%%%%%%%%%%%%%$$}}
%%%%%%%%%%%%%%}}}}$$!!  !!}}}}}}}}}}}}$$$$$$$$$$!!!!!!!!!!}}}}}}}}}}}}}}!!}}$$$$$$$$$$}}}}!!!!}}$$}}}}!!!!!!!!!!!!$$$$}}!!!!$$$$$$!!  $$$$$$!!!!$$$$$$$$}}$$}}!!}}$$$$$$$$$$$$%%%%%%$$}}}}}}$$$$$$$$$$$$$$$$$$%%%%%%$$$$}}$$$$}}!!  }}}}$$$$$$$$$$$$$$%%%%%%$$$$$$$$}}$$}}}}}}}}$$$$$$$$}}$$$$$$$$}}$$$$$$%%%%%%%%%%}}$$}}}}}}}}}}}}}}$$}}}}}}}}$$}}!!}}$$}}}}}}$$$$$$}}}}}}}}$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%}}}}
%%%%%%%%%%%%%%}}}}}}}}  !!}}}}}}}}}}}}$$$$$$$$$$!!!!!!}}}}}}}}}}!!}}}}}}  }}}}$$$$}}}}}}}}!!!!$$}}!!!!  !!}}}}!!!!}}$$}}!!}}}}}}}}!!}}}}}}}}!!!!$$$$!!!!  $$}}  }}}}%%$$$$$$$$%%%%%%$$}}$$$$}}$$$$$$%%$$$$$$$$%%&&%%$$$$$$$$$$}}!!  }}}}$$$$$$$$$$$$$$%%%%%%$$$$$$$$}}$$$$$$}}}}$$$$$$$$}}}}$$$$$$$$$$$$$$%%%%%%%%%%$$$$$$}}}}}}}}}}}}!!!!        !!  }}$$$$}}}}$$}}$$$$$$}}}}$$}}}}}}$$%%%%%%%%%%%%%%%%%%%%}}}}
%%%%%%%%%%%%%%}}$$$$!!    }}}}}}}}}}}}%%$$$$%%$$!!!!!!}}!!!!}}}}}}}}$$}}!!$$%%$$$$$$}}!!}}!!!!}}!!}}!!}}!!}}!!!!$$}}}}}}!!!!}}}}}}!!}}}}}}!!!!!!$$$$!!}}!!$$!!  !!$$%%%%%%$$$$%%%%%%$$$$$$}}$$$$%%$$$$$$$$$$$$$$&&%%$$$$$$$$$$}}!!  }}}}$$$$$$$$$$$$$$%%%%%%}}$$$$$$}}}}$$}}}}}}$$%%$$$$}}$$$$$$$$$$$$$$$$%%%%%%%%%%$$$$$$$$}}$$$$}}}}!!            !!}}}}$$$$}}$$}}$$}}$$}}}}$$}}}}}}$$%%%%%%%%%%%%%%%%%%%%$$$$
$$%%$$$$$$%%%%}}$$$$}}    !!!!}}}}}}}}$$$$$$%%$$!!!!!!!!!!!!!!}}!!}}}}}}!!$$$$$$%%$$}}}}!!!!!!}}!!}}}}!!!!  }}}}    !!    !!}}}}!!  !!!!!!!!!!  $$$$!!}}}}}}!!!!!!!!%%%%%%%%%%$$$$%%$$}}}}}}}}$$$$$$$$$$$$$$}}$$&&&&$$$$}}$$$$}}!!  }}}}$$$$$$$$$$$$$$%%%%%%$$$$$$$$}}$$$$}}}}}}$$$$$$$$}}$$$$$$$$$$$$$$$$%%%%%%%%%%$$$$%%$$$$$$$$$$}}!!!!!!    !!!!}}}}$$$$$$$$$$$$$$}}}}$$}}}}}}}}$$$$%%%%%%%%%%%%%%%%%%%%$$$$
%%$$%%%%%%%%%%}}}}$$}}    }}}}}}}}}}$$$$$$$$$$$$!!!!!!!!!!!!!!!!!!}}$$}}!!$$$$$$$$$$}}}}}}!!!!}}}}$$}}!!!!!!}}}}}}}}$$}}!!    !!!!  !!!!!!!!!!  $$$$  !!}}}}!!!!!!!!%%%%%%$$$$$$$$$$%%$$$$$$$$$$%%$$$$}}$$$$$$$$%%&&$$$$$$$$$$}}}}  }}}}$$$$$$$$$$$$%%%%%%%%$$$$$$$$}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%$$%%%%$$$$$$$$$$$$!!!!!!!!  }}}}}}}}$$$$%%$$$$$$$$$$}}$$$$$$$$}}$$$$%%%%%%%%%%%%%%%%%%%%$$$$
}}$$$$$$$$$$$$}}}}$$}}  !!}}}}}}$$}}}}$$$$$$$$$$!!!!!!!!!!!!!!!!!!}}}}}}!!$$$$$$$$$$}}}}}}!!!!!!!!        !!!!}}}}}}}}}}}}    !!!!  !!!!!!!!  !!%%}}  !!!!}}!!!!!!  %%%%%%%%$$$$$$$$$$%%$$$$$$$$%%%%%%$$$$$$$$%%%%%%%%$$$$$$$$}}}}  }}}}$$$$$$$$$$$$%%%%%%%%$$$$$$$$}}}}$$}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%$$%%$$$$$$$$$$$$$$!!!!!!!!  }}}}}}}}$$$$%%$$$$$$$$$$}}$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%$$$$
!!}}}}$$$$$$$$$$}}$$}}  !!}}}}}}$$!!}}$$$$$$$$}}!!!!!!!!!!!!!!!!!!$$}}}}!!$$$$$$$$$$}}}}}}}}!!!!!!!!!!}}}}!!!!!!!!}}!!!!}}                    !!%%}}  !!!!!!!!!!!!  %%%%%%%%$$$$$$$$$$$$$$$$$$%%%%%%$$$$$$%%$$$$%%%%%%%%$$$$$$}}!!  }}}}$$$$$$$$$$$$%%%%%%%%$$$$$$$$}}$$}}}}}}}}}}$$$$$$}}$$$$$$$$$$$$$$$$%%%%%%%%%%$$$$$$$$$$$$$$$$}}!!!!!!!!  }}}}}}}}$$$$%%$$$$$$$$}}}}$$$$$$$$$$}}$$%%%%%%%%%%%%%%%%%%%%%%$$
!!!!$$}}}}}}}}$$$$$$!!  !!}}}}}}}}!!$$$$$$$$$$$$!!!!  !!!!    !!!!}}}}}}!!$$$$$$$$$$}}}}}}  !!}}$$}}!!        !!  !!  !!!!!!!!                  $$}}  !!!!!!!!!!!!  %%%%%%$$$$%%$$$$$$$$$$$$$$%%%%%%$$$$$$%%$$$$$$$$%%%%$$$$%%}}!!  !!$$$$%%%%%%$$%%%%%%%%%%}}$$$$$$}}$$}}}}!!}}$$$$$$$$}}$$$$$$$$$$$$$$$$%%%%%%%%%%$$$$$$$$$$$$$$$$$$}}!!!!!!!!}}$$}}}}$$$$%%$$$$$$$$$$}}$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%$$
  $$!!$$$$$$}}$$$$$$!!  !!}}}}}}}}!!$$$$$$$$$$}}!!!!!!    !!!!!!!!}}}}}}!!$$$$$$$$$$}}}}}}$$}}!!              !!        !!                    !!$$$$  !!!!!!!!!!!!  $$$$%%$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%$$%%$$$$$$$$$$%%$$%%%%}}!!  !!$$$$$$%%%%$$%%$$$$%%%%}}$$$$$$$$$$}}}}!!$$$$$$$$$$}}$$$$%%$$$$$$$$$$%%%%%%%%%%$$$$$$$$$$$$$$$$$$}}  !!!!!!}}}}}}}}$$$$%%%%%%$$$$}}$$$$$$$$$$}}$$$$$$%%%%%%%%%%%%%%%%%%%%$$
}}}}!!$$$$}}}}$$$$$$!!  !!}}}}}}}}!!$$$$$$$$$$}}!!!!          !!!!$$}}}}!!}}}}$$$$$$}}$$!!!!  !!!!                  !!!!!!!!!!                !!$$}}    !!!!!!!!!!  $$$$%%$$$$$$$$$$$$$$$$$$$$%%%%%%$$$$$$%%$$$$$$$$$$%%$$%%%%}}}}  !!$$%%%%%%%%$$%%$$$$%%%%}}$$}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%$$$$$$%%$$$$$$$$$$}}!!!!!!  }}}}}}}}$$$$%%$$$$$$$$$$}}$$%%%%$$}}$$$$$$%%%%%%%%%%%%%%%%%%$$$$
}}$$%%&&&&$$}}%%$$$$!!    }}}}}}}}!!$$$$$$$$$$$$$$$$$$$$$$}}}}$$}}}}}}}}!!}}}}$$}}}}}}!!  !!!!!!!!!!!!              !!!!!!!!}}                !!$$}}      !!  !!!!  $$$$$$$$$$$$$$$$$$$$$$$$$$%%$$$$$$$$$$$$$$$$$$$$$$%%$$$$%%}}!!  !!$$%%%%%%%%$$$$$$$$$$%%$$$$}}$$$$}}}}}}!!}}!!}}}}$$}}}}$$$$$$$$$$$$$$%%%%%%%%%%$$$$$$%%$$$$$$$$$$}}!!!!!!!!}}}}}}}}$$$$%%$$$$$$$$$$$$$$$$$$%%}}$$$$$$%%%%%%$$%%%%%%%%%%%%$$
}}}}$$%%@@&&$$$$$$$$!!  !!!!!!!!!!}}}}}}}}}}}}}}$$%%}}}}}}$$$$$$}}}}$$}}}}!!}}}}!!!!!!!!!!  !!!!!!!!!!              !!!!!!!!!!                !!$$}}      !!    !!  $$$$$$$$$$$$}}}}$$$$$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$}}!!  !!$$%%%%%%%%$$$$$$$$$$$$}}$$$$$$}}$$!!!!!!}}}}$$$$$$}}$$$$%%$$$$$$$$$$%%%%%%%%%%$$$$%%%%$$$$$$$$$$!!!!!!!!  }}}}}}}}$$$$%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%$$
  !!%%%%@@&&%%%%$$}}!!    !!!!!!!!!!!!!!!!!!!!!!!!!!!!}}$$$$}}!!!!!!!!!!!!!!!!$$!!!!!!  }}!!  !!!!!!              !!!!!!!!!!!!                !!$$}}            !!  $$$$$$$$$$$$}}$$$$$$$$}}}}$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$}}!!!!!!$$%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$!!}}$$$$%%$$}}$$$$%%%%$$$$}}%%%%%%%%%%$$$$%%%%$$$$$$$$}}!!!!!!!!!!}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%$$%%$$
  }}%%%%&&%%&&&&%%$$!!    !!!!!!!!                !!!!!!}}}}}}!!!!!!!!!!!!!!  !!!!!!!!      !!                          !!!!!!                !!$$}}            !!  $$$$$$$$$$$$}}}}$$$$$$$$}}$$$$$$$$$$}}$$$$$$$$$$$$$$$$}}$$}}!!  !!$$$$%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$}}$$%%$$%%$$!!$$$$$$$$$$$$$$%%%%%%%%$$$$$$$$%%$$$$$$$$$$}}!!!!!!!!!!}}}}$$$$$$$$$$$$$$$$$$$$}}$$$$$$$$$$%%%%%%%%%%%%%%%%%%$$%%$$$$
  }}}}}}&&%%&&&&$$$$!!    !!!!!!!!  !!}}!!!!}}}}}}!!!!  !!}}!!!!!!!!      !!      !!!!!!    !!!!                !!  !!  !!!!!!                !!$$}}                }}}}}}}}}}}}$$}}$$}}}}$$$$$$$$$$$$$$}}}}$$}}}}$$$$$$$$$$$$!!!!  !!$$$$$$$$$$$$$$$$$$$$$$}}$$$$$$}}$$$$}}$$}}$$%%%%%%$$}}%%%%$$$$}}}}}}%%%%%%%%$$}}}}$$}}$$$$$$$$}}!!!!!!!!  !!}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%$$$$%%$$%%
    !!}}%%%%&&&&%%@@}}    !!!!!!}}}}$$}}!!!!              !!!!}}!!!!!!        !!!!!!!!!!  !!!!!!                  !!                          !!}}}}                }}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$}}!!}}!!$$$$$$$$}}}}  !!$$%%$$%%$$$$$$$$$$$$$$}}$$$$$$}}$$$$}}}}}}%%$$%%%%%%$$$$$$$$$$$$$$$$%%%%%%%%$$$$$$$$!!}}$$$$}}}}!!!!      !!}}}}}}$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$%%$$%%%%%%%%%%%%%%%%%%%%$$
}}}}}}}}%%&&&&%%%%%%}}!!$$$$$$}}!!!!                        !!!!!!!!!!          !!!!!!!!!!  !!!!                                              !!}}}}                }}}}}}}}}}}}}}}}}}}}}}$$}}$$$$$$}}$$}}$$$$}}}}!!}}$$$$$$}}!!!!  !!$$$$$$$$$$$$$$$$$$$$$$}}$$$$$$}}$$$$$$}}$$$$%%$$%%$$%%$$$$$$$$$$$$$$$$%%%%%%%%$$$$%%$$$$$$}}}}}}!!        !!}}}}}}$$$$$$$$$$$$$$$$$$}}$$$$$$$$$$$$$$%%%%%%%%%%%%%%$$%%$$%%
}}}}!!}}$$%%%%%%$$}}}}!!!!!!                                    !!!!    !!        !!!!                                  !!                    !!}}}}                }}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}}}}}}}$$$$}}}}}}}}$$$$$$}}!!!!    $$}}$$$$$$$$}}$$$$$$$$}}$$$$$$$$$$$$}}$$$$%%%%$$%%$$%%$$%%%%$$$$$$$$$$%%%%%%%%%%%%%%%%%%$$}}}}}}}}!!!!!!  }}}}}}}}$$$$$$$$$$$$$$$$$$$$}}$$$$$$$$$$$$%%%%%%%%%%%%%%%%$$$$$$
}}}}$$$$}}}}!!!!!!      !!!!                                            !!!!                                                                  !!}}!!                !!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}}}$$$$}}$$$$$$}}!!  !!}}$$$$$$$$$$$$$$$$$$$$}}$$$$$$}}$$$$}}}}$$$$$$$$%%$$%%%%%%$$$$$$$$$$$$$$%%%%$$%%%%$$%%%%%%$$$$$$$$}}}}}}!!}}}}}}}}$$$$$$$$$$$$$$$$$$$$}}$$$$$$%%%%$$%%%%%%%%%%%%%%%%%%$$$$
}}!!!!!!!!!!!!  !!    !!                                        !!                            !!                                              !!}}!!                !!!!!!}}}}}}}}}}}}}}}}}}}}}}$$}}}}}}}}}}}}}}}}}}}}$$}}}}$$$$$$}}!!}}$$$$$$}}$$}}$$$$$$$$!!$$$$}}}}$$$$}}}}$$$$%%$$%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%$$%%%%$$%%$$$$$$}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$%%$$$$$$$$$$$$%%$$%%%%%%%%%%%%%%%%%%$$$$
!!!!!!!!!!!!!!!!!!                                                  !!                                                                        !!!!!!                !!}}}}}}}}}}}}}}}}}}}}}}!!}}}}}}}}}}}}}}}}}}}}}}$$}}}}$$$$}}$$$$$$$$$$$$$$}}$$}}}}$$}}}}}}$$$$$$$$$$$$}}}}$$$$%%%%$$$$$$%%%%$$$$$$$$$$$$$$%%$$$$$$$$%%%%%%$$$$%%%%%%$$$$$$}}!!}}}}}}$$$$%%$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%$$%%
!!!!!!!!!!!!!!!!!!                                                                                                                            !!!!!!                  }}}}!!}}}}!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$}}}}$$$$$$$$$$$$}}$$$$$$$$}}}}$$$$$$$$$$$$}}}}$$$$%%%%%%%%$$$$%%%%$$%%$$$$$$$$%%$$$$$$$$$$%%$$$$$$%%%%$$$$$$}}!!}}}}}}!!%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%$$$$%%$$$$
                                                                                                                                              !!!!!!                !!}}}}}}!!}}}}}}!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$}}$$}}$$$$$$$$$$$$$$$$}}$$}}}}$$$$$$$$$$}}}}}}$$$$$$$$$$$$$$$$%%$$$$%%$$$$$$$$%%$$$$$$$$$$%%%%%%$$%%$$$$$$}}}}!!!!}}}}!!%%%%$$$$$$%%$$$$$$$$$$$$$$$$%%%%$$%%%%%%%%$$%%%%$$$$$$%%
                                                                                                                                              }}$$}}                !!}}}}}}}}}}}}!!!!}}!!!!!!!!}}}}!!}}}}}}!!!!}}}}}}}}}}}}}}}}}}$$}}}}}}$$$$$$$$}}$$$$$$}}!!}}$$$$$$}}}}}}}}$$$$$$$$%%$$$$$$$$$$$$$$$$$$$$%%%%$$$$$$$$%%$$$$$$$$%%$$$$$$}}}}!!!!!!}}!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%$$$$%%$$$$$$%%$$$$
                                                                                                                                              }}$$}}                !!}}}}!!!!}}}}!!!!!!!!}}}}}}!!!!}}!!}}!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$}}$$$$$$}}!!}}}}}}$$}}}}}}}}$$$$$$$$%%$$$$%%$$$$$$$$$$$$$$$$%%$$$$$$%%%%%%$$$$$$$$$$$$}}}}}}!!!!!!}}!!%%%%%%%%$$$$$$$$%%$$$$$$$$$$$$$$%%%%%%$$$$%%$$$$%%%%$$%%
                                                                                                                                              }}}}!!                !!}}}}}}!!!!!!!!}}!!!!!!}}!!}}}}}}}}!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}$$$$}}}}}}}}}}$$$$$$$$}}}}!!!!!!$$$$$$$$$$$$$$$$%%%%$$$$$$$$}}$$%%$$$$$$$$%%%%%%$$%%$$$$$$}}}}!!!!!!!!}}}}%%%%%%$$$$$$$$$$%%$$$$$$$$$$$$%%%%%%%%$$%%%%$$$$%%%%$$%%
                                                                                                                                              }}!!!!                !!}}}}}}}}}}}}!!!!!!!!!!!!!!!!!!}}}}}}!!!!!!}}$$$$}}$$}}}}}}}}}}}}}}}}}}}}}}$$}}$$}}$$$$$$$$$$$$$$}}!!!!!!}}$$$$$$$$$$$$$$$$$$$$$$$$$$}}$$%%$$$$$$%%%%%%$$$$%%%%$$$$}}}}!!!!!!!!!!}}%%%%%%%%%%$$%%%%%%$$$$$$$$$$%%$$$$%%%%%%%%%%$$$$%%%%$$$$
                                                                                                                                              }}}}!!                  }}}}}}}}}}}}}}}}!!!!!!!!!!!!!!!!!!!!!!}}!!!!!!!!!!!!        !!!!}}}}}}}}}}}}}}$$$$$$}}}}}}$$$$$$}}}}!!!!}}}}$$$$$$}}$$$$$$$$$$$$$$$$}}$$$$$$$$$$$$%%$$$$$$%%%%$$%%}}!!!!!!!!!!!!}}%%%%%%$$$$%%$$$$$$$$%%$$$$$$$$$$%%%%%%%%%%$$$$$$$$%%$$$$
                                                                                                                                              !!!!!!                  }}}}}}}}}}}}}}}}}}}}}}!!!!!!!!!!!!}}}}}}!!!!!!!!            !!!!}}}}}}}}}}$$}}$$$$$$}}$$}}$$$$$$}}}}}}}}}}}}$$$$$$}}$$$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$%%$$$$$$$$$$}}!!!!!!!!}}}}}}%%%%%%%%%%$$%%%%%%$$%%%%$$$$$$%%%%$$%%%%%%$$$$$$$$%%$$%%
                          !!                                                                                                                    !!!!                  }}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!}}!!!!!!!!!!              !!}}}}}}}}}}}}}}$$$$$$$$}}$$$$}}$$}}}}}}}}}}$$$$$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%$$$$$$$$$$%%}}!!!!!!!!  !!!!!!%%%%$$$$$$$$%%%%%%%%%%%%$$%%$$$$$$$$%%%%%%%%%%$$$$%%$$%%
                      !!                                                                                                                        !!!!                  }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!}}!!!!!!!!                !!}}}}}}}}}}}}$$$$}}}}}}}}}}$$$$}}}}}}}}}}}}$$$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%}}}}}}!!  !!!!!!}}%%%%$$%%$$%%$$$$%%%%%%%%%%$$%%%%%%$$$$%%$$%%%%%%$$%%$$%%
              !!!!!!!!                                                                                                          !!              !!!!                  }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!}}!!!!!!!!                !!!!}}}}}}}}}}}}}}}}$$}}}}}}}}}}}}}}!!}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%$$}}!!!!!!!!!!!!}}%%%%%%$$$$$$$$%%%%$$%%%%%%%%%%%%$$$$%%$$$$$$$$$$$$%%$$%%
          !!!!                                                                                                                  !!!!          !!!!!!                  }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}}}!!!!!!!!!!!!                !!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%$$$$$$%%$$}}}}!!!!!!!!!!!!}}%%$$%%$$%%$$%%$$%%$$%%%%%%%%%%%%$$$$%%%%$$$$$$$$$$$$$$%%
                                                                                                                                !!!!!!        !!!!!!                  }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$!!!!!!!!!!!!!!  !!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$%%}}}}!!!!    !!!!}}$$%%$$$$$$$$$$$$$$$$%%$$%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$%%
                                                                                                                                !!!!!!!!!!!!!!!!!!!!                  }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}!!!!!!}}}}}}}}}}}}}}}}}}}}!!!!!!}}}}}}$$$$$$$$$$$$$$$$$$$$}}$$}}$$$$$$$$$$$$$$$$%%$$$$%%$$}}}}!!!!!!  !!!!}}$$%%%%%%%%$$$$$$%%$$$$$$$$%%%%%%$$$$$$$$$$$$$$$$$$$$$$%%
                                                                                                                                !!!!!!!!!!!!!!!!!!!!                  }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!!!!!!!                  !!}}!!!!!!}}}}}}}}}}}}}}}}}}!!!!!!}}}}}}}}$$$$$$$$$$$$}}$$$$$$$$}}$$$$}}$$$$}}$$$$$$$$$$$$$$}}}}!!!!!!  !!!!}}$$%%%%%%%%%%%%%%$$$$$$%%%%%%%%$$%%$$$$$$$$$$$$$$$$$$$$%%
                                                                                                                                !!  !!!!!!!!!!!!!!!!                  }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!!!!!!!                !!}}}}!!!!!!!!!!!!}}}}}}}}}}}}!!!!!!}}}}}}}}$$$$$$$$$$$$}}$$$$$$$$$$$$$$$$$$$$}}$$$$$$%%$$$$$$}}}}!!!!}}  !!!!}}$$%%%%%%%%%%$$%%$$$$$$%%$$%%%%$$$$$$$$$$$$%%$$$$$$$$$$%%
                                                                                                                                      !!!!!!!!!!!!!!                  }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!  !!!!!!!!              !!}}!!!!}}}}!!!!!!!!!!}}}}}}}}!!!!!!!!}}}}}}}}}}}}}}$$}}}}$$$$$$}}$$$$$$}}}}}}}}$$$$$$$$$$$$$$}}}}}}}}!!    !!}}%%%%$$$$%%%%$$$$$$%%$$$$$$$$%%$$$$$$$$$$$$$$}}$$}}$$$$%%
                                                                                                                                !!  !!!!!!!!!!!!!!!!                  }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!  !!!!                !!}}!!!!}}}}!!}}!!!!!!!!}}}}}}!!!!!!}}}}}}}}}}}}}}}}$$}}}}}}$$$$$$$$$$}}}}}}}}$$$$$$$$$$$$$$$$}}}}}}!!    !!!!!!$$$$$$$$%%%%$$$$$$$$$$$$%%%%%%%%$$$$$$$$$$$$$$$$}}$$%%%%
                                                                                                                                    !!!!!!!!!!!!!!!!                  }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!  !!                !!!!!!!!}}}}}}!!}}!!}}!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}$$}}}}$$}}$$$$$$}}}}}}$$$$$$}}$$$$$$}}}}}}}}!!    !!!!}}$$$$$$$$%%%%$$$$$$$$$$$$$$%%%%$$%%$$$$$$$$$$$$$$}}$$%%%%
                                                                                                                                      !!  !!!!!!!!!!                  !!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!                  !!!!!!!!}}}}}}}}}}}}!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}$$}}$$}}}}$$}}}}$$$$}}}}$$$$$$$$$$$$$$$$$$}}!!!!!!      !!}}$$$$$$$$%%$$$$$$$$%%$$$$%%%%%%$$%%%%$$$$$$$$$$}}$$$$%%%%
                                                                                                                                  !!  !!!!!!!!!!!!                    !!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!!!!!}}}}!!  !!!!}}}}}}}}!!!!!!!!!!!!!!!!!!}}!!}}}}}}}}}}}}}}}}$$}}}}$$}}}}$$$$$$}}$$$$$$$$$$$$$$$$$$}}}}!!!!      !!}}$$$$$$%%%%$$$$$$$$%%$$$$%%$$$$%%%%$$$$$$$$$$$$$$$$$$%%%%
                                                                                                                                          !!!!!!!!                    !!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$}}!!!!!!}}}}!!!!!!!!}}!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}$$}}}}$$$$}}}}}}$$%%%%$$$$$$$$}}}}}}!!      !!!!$$$$$$%%%%$$$$$$$$$$$$$$$$%%%%%%$$$$$$}}$$$$$$}}}}$$$$$$
                                                                                                                                          !!!!!!!!                    !!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$}}}}}}!!}}}}}}}}!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$}}}}$$$$$$$$$$$$$$$$}}}}!!!!!!!!!!!!}}%%%%$$%%$$$$$$$$$$$$$$$$$$%%$$$$%%%%%%$$$$$$$$$$$$$$$$%%
                                                                                                                                                                      !!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$}}!!!!!!}}!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}}}}}$$$$$$$$}}$$$$$$$$}}}}}}!!  !!!!$$%%%%$$$$%%$$$$$$%%$$$$$$%%%%%%$$$$$$$$$$$$$$$$$$$$$$%%$$
                                                                                                                                                                        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$}}}}!!}}!!}}!!!!}}!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}}}}}}}$$$$$$$$$$$$$$}}}}}}}}!!  !!!!$$$$%%$$$$%%$$$$$$$$$$$$$$%%%%%%$$$$$$%%$$$$$$$$}}$$$$$$$$
                                                                                                                                                                        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!}}}}!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$}}}}}}$$$$$$$$$$$$}}$$$$$$}}}}!!!!!!!!$$%%$$$$$$$$$$$$$$$$$$$$%%%%%%$$%%%%$$%%$$$$$$$$$$$$%%%%
                                                                                                                                                  !!                    !!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$}}}}!!!!}}!!!!!!!!!!!!!!}}!!!!!!}}}}}}}}}}}}}}}}}}}}$$$$}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$}}}}}}}}$$$$$$$$$$$$%%$$$$$$$$$$%%%%%%%%$$$$$$$$$$%%%%$$$$%%%%%%
                                                                                                                                          !!    !!!!                    !!!!!!!!!!!!!!!!!!!!!!}}!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}}}!!!!!!!!!!!!!!!!!!}}!!!!!!}}}}}}}}}}}}}}}}}}}}$$}}}}}}$$$$$$$$$$}}$$$$$$$$$$%%$$$$$$}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%$$$$$$$$$$%%%%$$$$%%%%%%
                                                                                                                                          !!                            !!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}}}}}!!!!!!!!!!}}!!!!!!!!!!}}}}!!!!}}}}}}}}}}}}}}}}}}!!}}$$$$}}$$$$$$$$$$$$$$$$$$$$$$$$}}$$$$$$$$$$$$%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%
                                                                                                                                                                        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!!!!!!!!!!!!!!!}}!!!!}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$}}$$$$}}$$}}$$%%$$}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$}}$$$$$$$$$$$$$$$$$$$$
                                                                                                                                            !!!!                        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}!!}}$$$$$$$$$$$$$$}}}}}}$$}}}}!!}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$}}}}$$$$$$$$$$$$$$$$%%$$
                                                                                                                                          !!!!!!!!!!                    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!}}!!!!!!!!}}}}}}}}!!}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$$$}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%$$$$$$$$$$$$$$%%$$
                                                                                                                                                                        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}}}!!!!!!!!!!!!!!!!}}}}}}!!}}}}}}}}$$}}}}}}!!}}$$$$$$$$$$$$$$$$$$$$$$}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%$$$$$$$$$$$$%%$$$$$$$$$$$$
                                                                                                    !!                                                                  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$}}!!!!!!!!!!!!!!!!}}!!!!!!}}}}}}}}}}}}}}}}}}$$$$$$$$}}$$$$$$$$$$}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%$$$$$$$$$$$$%%$$$$$$$$$$$$
                                                                                                                                                                        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!}}!!}}!!}}}}!!!!!!}}}}}}}}}}!!!!!!}}$$$$$$$$}}}}$$$$}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%$$$$$$$$$$$$
                                                                                                                                                                          !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!}}!!!!!!!!}}}}}}!!}}!!!!!!!!}}}}}}!!!!!!!!!!}}}}$$$$$$}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%$$$$$$$$$$$$
                                                                                                                                                                                !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!}}}}}}!!!!!!}}}}}}}}!!}}!!!!!!!!}}$$$$$$$$}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%$$$$$$$$%%%%$$$$$$$$$$
                                                                                                                                                                                  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!}}!!}}!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}}}}}}}$$}}}}}}}}}}$$$$$$$$$$$$$$$$$$%%$$$$$$$$$$$$$$$$$$$$%%%%$$$$$$$$$$$$
                                                                                                                                                                                  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!}}}}}}}}$$$$$$$$}}$$$$$$}}}}}}}}$$$$$$}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$}}$$$$%%$$$$$$$$$$$$$$$$$$$$%%%%$$$$$$$$$$$$
                                                                                                                                                    !!!!                          !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}!!!!!!}}}}}}}}!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}}}$$$$$$$$$$$$$$$$$$$$$$$$}}}}}}}}}}}}}}}}}}$$$$}}$$$$$$$$$$$$$$$$$$$$}}$$$$$$$$$$$$$$}}$$$$$$$$$$
                                                                                                                                                                              !!  !!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}!!!!}}}}}}!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!}}!!}}}}$$$$$$$$$$$$}}$$$$$$$$$$$$$$$$$$}}}}}}}}}}}}}}}}$$$$$$$$}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$}}}}$$$$$$$$
                                                                                                                                                                              !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}!!!!!!!!!!!!!!}}}}!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!}}}}}}}}}}}}}}}}}}}}}}!!!!!!}}!!}}$$$$$$$$$$$$$$$$$$$$}}$$$$$$$$$$$$!!!!}}}}}}$$}}$$$$$$}}}}$$$$$$$$$$$$$$%%$$$$$$$$$$$$$$}}$$$$$$$$$$
                                                                                                                                                                            !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!}}}}!!!!}}!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}!!!!!!}}}}$$$$$$$$$$}}}}}}$$}}}}}}$$$$$$$$}}!!!!}}}}}}}}}}$$}}}}}}}}$$$$$$$$$$$$$$$$$$$$}}}}$$}}$$$$$$$$$$$$
                                                                                                                                                                      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}!!}}}}}}}}}}}}!!}}}}}}}}}}}}}}}}}}}}}}!!!!!!}}}}}}}}}}}}}}}}}}}}}}$$}}$$}}$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$}}}}$$$$$$$$$$$$$$$$
                                                                                                                                                                !!!!!!!!!!  !!!!!!!!!!!!!!!!!!}}}}}}!!!!!!!!}}}}}}}}!!!!}}}}}}}}!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$}}!!}}!!}}}}}}}}}}}}}}}}}}}}!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$}}}}}}$$$$$$$$}}}}$$$$
                                                                                                                                                            !!!!  !!!!!!!!!!!!!!!!!!!!!!!!!!!!}}!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$}}!!}}}}}}}}!!      !!    !!  !!            !!!!!!}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$}}$$$$$$$$$$$$$$$$$$
                                                                                                                                          !!!!  !!  !!!!!!  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$!!!!}}}}}}!!!!                            !!!!  !!}}}}}}}}}}}}}}}}}}$$}}$$}}}}$$$$$$$$}}}}$$$$$$$$$$$$$$$$$$
                                                                                                                                                        !!!!  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$}}$$}}!!}}}}}}}}!!                              !!!!!!!!}}}}}}}}}}}}}}}}}}}}$$}}$$$$$$$$}}}}}}$$$$$$$$$$$$}}}}$$
                                                                                                                                                        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}!!}}!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!}}}}!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!}}}}}}}}!!                                  !!!!}}}}}}}}}}}}}}}}}}}}$$}}}}$$$$$$}}}}}}}}$$$$$$$$$$$$$$$$
                                                                                                                                                        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!}}}}}}}}}}!!        !!                        !!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}}}}}}}}}$$$$$$$$$$$$$$$$
                                                                                                                                                    !!  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}!!!!}}}}}}!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$}}}}!!!!!!}}}}}}}}!!!!                                  !!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}}}}}}}}}}}}}$$$$$$$$$$$$
                                                                                                                                                    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$!!!!!!!!!!!!}}!!!!                                  !!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}}}}}$$}}}}}}}}$$$$$$$$$$
                                                                                                                                                    !!!!    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}}}}}$$!!!!!!!!!!!!}}!!!!                                    !!}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$}}}}}}}}}}}}$$}}}}$$$$$$$$
                                                                                                                                                                  !!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$!!!!!!!!!!}}}}}}!!                                  !!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$}}}}$$$$$$
                                                                                                                                                    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}!!!!}}!!!!!!}}}}!!                                    !!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$
                                                                                                                                                  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!!!!!!!!!}}!!                                    !!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$
                                                                                                                                            !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!!!!!!!!!!!!!!!!!!!}}!!                                  !!!!!!!!}}}}}}}}}}}}}}}}}}!!}}}}}}}}}}}}$$}}}}}}}}}}}}$$$$$$
                                                                                                                                        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!}}}}}}!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!!!!!!!!!!!!!}}!!                    !!              !!!!}}!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}
                                                                                                                                    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!}}}}}}}}}}}}}}}}!!!!}}}}}}}}}}}}!!!!!!!!!!}}!!!!!!!!          !!!!!!!!!!!!!!!!!!!!    !!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}
                                                                                                                                !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!}}}}}}}}!!!!!!!!!!!!!!!!!!}}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}!!!!!!}}}}!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$
                                                                                                                                      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!}}}}!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
                                                                                                                                      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!!!!!}}}}!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
                                                                                                                                  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!}}}}}}}}}}}}!!!!}}!!!!!!!!!!  !!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!!!}}!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
                                                                                                                                    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!!!!!!!!!}}}}}}!!}}}}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}!!!!!!!!!!}}}}}}}}}}}}!!}}}}}}}}}}}}}}}}}}
                                                                                                                                    !!!!!!!!  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!!!!!!!}}}}}}}}}}!!    !!!!!!!!!!!!!!!!!!!!!!  !!!!!!!!!!!!!!}}}}!!!!!!!!!!}}}}}}}}}}!!}}!!}}}}}}}}}}}}}}