#################################################################################################################
#################################################################################################################
#######################################zz########zz#####################zzzzz####z###############################
#################################################################################z###############################
#################################################################################################################
#################################******iiiii******i****iiiiii***********iiiiii*+#################################
#################################******iiiii***********iiiiii***********iiiiiiii*################################
#################################******iiiii***********iiiiii***********iiiiiiii*##z#############################
#################################******iiiii***********iiiiii***********iiiiii*i*################################
#################################******iiiii*******i***iiiiii***********iiiiiiii*################################
#################################*****i,,,,,;iiiiiiiiiiiiiiiiiiiiiiiiiii******ii*################################
#################################*****;`   `:;;;;;;;;;;;;;;;;iiiii;;;;;;******::i################################
#################################*****:    `:;;;;;;;;;;;i;;;;iiiii;;;;;;******::;################################
#################################*****:    `:;;;;;;;;;;;i;;;;iiiiii;;;;;******::;################################
#################################*****;    `:;;;;;;;;;;;i;;;;iiiii;;;;;;i*****::;################################
#################################*****;`````:;;;;;;;;;;;i;;;;iiiii;;;;;;i*****::;################################
#################################*****iiiiiiiiiiii;;;;;;;;;;;i****************::;################################
#################################**i***i*iiiii***i;;;;;;;;;;;*****************:;;################################
#################################******iii**ii***i;;;;;;;;;;;*****************:;;#z##############################
#################################ii*****iiii*****i;;;;;;;;;;;*****************;;;#z##############################
#################################*i******ii******i;;;;;;;;;;;**********+******;;;################################
#################################******+++*******i:::::;iiii;******+*###+*****;;;################################
#################################***+*zWWW#******i`   `:iiiii****++++MWW#******i;################################
#################################***+*+++++****++*`    ,iiiii****#######+******ii################################
#################################**++*++++*****++*     ,iiiii****#######+******ii################################
#################################*****++++*****++*     :iiiii****#######+******ii#z##############################
#################################******+++*****+**`    :iiiii***+#######+******ii################################
#################################+*i****++:,,,;###:::::;iiiii###+::::++++#zn+**ii################################
##################################+i******.   :zzzii*iiiiiiiizzz+    *+++znWz***i################################
###################################*******.   :zzzii*iiiiiiiizzz+    i+++zn@z***i################################
###################################*i*****.   :zzziiiiiiiiiiizzz+    *+++zn@z***i################################
###################################*ii****.`..:zzzii***iiiiiizzz+....*+++zn@z***i################################
###################################*i*####i**+****i****iiiiii****####zznnzn@z***i################################
###################################*i*####+++++****nnnnnnnnn+****####znnnznWz****################################
####################################**####++++*****nnnnnnnnx+****####zznnznWz****################################
####################################**####++++*****nnnnnnnnx+****####znznznWz****################################
####################################*+####+++++++++nnnnnnnnn#++++####zzzzznWz****################################
####################################*+zzzz#zzzznnnnnnnnnnnnnnnnnnzzzzzzzznzxz****################################
###################################z**zzzz#zzzznnnnnnnnnnnnnnnnnnzzzzzzzznzxz****################################
##################z########z#######z**zzzzzzzzznnnnnnnnnnnnnnnnnnzzzzzzzznzxz****################################
#################++++++**++#########++zzzz#z#zznnnnnnnnnnnnnnnnnnzzzzzzznn##+**********iiiii*****################
###############z#*****+i::::::;iiiiii*nnnnnnnnnnzzznnzznnnnnnzzzzzzzznnnnn+**iiiiiiiiiiiiii******+#z#############
################*iii***iiiiiiiiiii***+nnnnnnnnnzzzzzzzzznnnnzzzzzzzzznnnnn******iiiiiiiiii****ii**###############
###############z*******iiiiiiiiiiiiii+nnnnxxnnnzzzzzznzznnnnzzzzzzzzznnnnn*****iiiiiiiiiii*****i**###############
##############z#*****i*iiiiiiiiiiiiii+nnnnxnxxnzzzzzzzzznnnnzzzzzzzzznnnnn*****iiiiiiiiiii********###############
################*ii*i**iiiiiiiiiiiiii*zz#zzznnnnnnnnnnnnnnnnnznnnnnnznnnnn*****;::::::::..i*******###############
################**i****iiiiiiiiiiiiii******ii*##zzzzz####zzzzzzzzz##**********i.         `i******;#z#############
################**i***i::::::iiiiiiii******:`:***++z#####zzznn+*****;;;;;;iiiii.         `i******:#z#############
################******i`     ```````:******,`:***++z#####zzzzz+****i;;;;;;iiiii.         `;******:###############
################******i`            :******. :+++++z#####nzzzz+*****;;;;;;iiiii.          :******:###############
################******i`           `i******` :*++**z#####zznzz+*****;;;;;;iiiii,.```      :******:###############
################******i`            i******` :*****#zzzzzzzzzz*iiiii;;;;;;iiiii;;;;,      :ii**i*:+##############
################******i`     ``    `i******` `````.*+++++*****:````.:;;;;i*****;;;;,      :ii***i:###############
################****i*;`     ,::::::i******`      `*++++******,    `:;;;;i*****;;;;,      :i*****:+##############
################****i*:     `,;;;;;;i******`      `*++++******,    `;;;;;i**iii;;;;,     `:*****i:+#z############
################i***i*:      ,;;;;;;i*****i`      `*++++******,    `;;;;;i**i;;;;;;:`````.:******;+##############
################**i*i*:     `,;;;;i****i.``      ``*++++******,`  ``:;;;;i**i;;;;;;;;;:;:;i******;*##############
################**ii**:```` `:;;;;i****i`    ,:::::iiiii;,,.,,::::::;;;;;iiii;;;;;;;;;;;;;i******i+##############
################******i;;;:,,:;;;;i****i`   `,;;ii;;;;i;:`   `:;;;;;;;;;;iii*;;;;;;;;;;;;;i******i+#z############
################******i;;;;;;;;;;;i****i`    ,;;iiii;;ii:`    :;;;;;;;;;;iiii;;;;;;;;;;;;;i******i+#z############
################******i;;;;;;;;;;;i****i`    ,;;;;i;i;;;:     :;;;;;;;;;;iiii;;;;;;;;;;;;;i******i+z#############
################******i;;;;;;;;;;;i****i`    ,;;;;;;iii;:`   `:;;;;;;;;;;iii*iiiiiiiiiiiiii******i+zz############
################******i;;;;;;;;;;;i*****;::::;;;;;;;;;;;;:::::;;;;;;;;;;;;****iiiiiiiiiiiii******i+##############
################******iii;;;;;;;;;******;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;****iiiiiiiiiiiii******i+#z############
################******iiiiiiiiiii*******;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;****iiiiiiiiiiiii******i+#z############
################******iiiiiiiiiii*******;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;****iiiiiiiiiiiii*******+#z############
################******iiiiiiiiiiiii*****;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;****iiiiii*******++#****+#z############
################******iiiiiiiiiiiii*****i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiii*+++++****+++++++++#****+zz############
#############zz#++++****iiiiiiii****####******;;;;;;;;;;;;;;;;;;;;;;;;****+#####+++++####++++#****+zz############
#############z######++++++++++++++++####+*****;;;;;;;;;;;;;;;;;;;;;;;;****+#####+++++####++++######z#############
####################+++++####+++++++####+*****;;;;;;;;;;;;;;;;;;;;;;;;****+#####+++++####++++#z#zz###############
####################+++++####+++++++####+*****;;;;;;;;;;;;;;;;;;;;;;;;****+#####+++++####++++####################
####################+++++####+++++++####+*****;;;;;;;;;;;;;;;;;;;;;;;;****+#####+++++####++++####################
####################+++++####+++++++####++++++************************++++++####+++++####++++####################
####################+++++####+++++++####++++++************************++++++####+++++####++++####################
####################+++++####+++++++####++++++************************++++++####+++++####+++++###################
####################+++++####+++++++####++++++************************++++++####++++++++++++++###################
####################+++++####+++++++####++++++++++++++++++++++++++++++++++++####++++++++++++++###################
####################++++++++++++++++####++++++++++++++++++++++++++++++++++++####++++++++++++++z##################
####################++++++++++++++++####++++++++++++++++++++++++++++++++++++####++++++++++++++z##################
####################++++++++++++++++####++++++++++++++++++++++++++++++++++++####++++++++++++++z##################
####################++++++++++++++++####++++++++++++++++++++++++++++++++++++####++++++++++++++z##################
####################++++++++++++++++####++++++++++++++++++++++++++++++++++++####++++++++++++++z##################
####################++++++++++++++++####++++++++++++++++++++++++++++++++++++####++++++++++++++z##################
####################++++++++++++++++####++++++++++++++++++++++++++++++++++++####++++++++++++++z##################
###############z####++++++++++++++++####++++++++++++++++++++++++++++++++++++####++++++++++++++###################
###############z####++++++++++++++++####++++++++++++++++++++++++++++++++++++####++++++++++++++###################
####################++++++++++++++++####++++++++++++++++##++++++++++++++++++####++++++++++++++###################
####################++++++++++++++++####++++++++++++++++##++++++++++++++++++####++++++++++++++###################
####################++++++++++++++++####++++++++++++++++##++++++++++++++++++####++++++++++++++###################
####################++++++++++++++++####++++++++++++++++##++++++++++++++++++####++++++++++++++###################
##################z#++++++++++++++++####++++++++++++++++++++++++++++++++++++#########+++++++++z##################
###################++++++++++###++++####++++++++++++++++++++++++++++++++++++#########+++++++++z##################
##################z++++++++++####+++####++++++++++++++++++++++++++++++++++++#########+++++++++zz#################
##################z++++++++++####+++####++++++++++++++++++++++++++++++++++++#########+++++++++z##################
##################z++++++++++####+++####++++++++++++++++++++++++++++++++++++#########+++++#######################
##################z#+++++++++####+++####++++++++++++++++++++++++++++++++++++#########+++++#######################
##################z####++++++####+++++++******+######################################+++++#######################
##################z####++++++#######*iiiiiiiii++++++++++++++++++###########++########+++++#######################
#######################++++++#######*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*#zzzzzznnzzznnnnnzz#################
########################++++########*iiiiiiiiiiiiiiiii*****iiiiiiiiiiiiiiiiiizxxxxxxxxxxxxnnnnn##################
###########################z########*iiiii;;;;;;;;;;;******iii;;;;;;;;;;******zzzzzzzzzzzzz##z###################
##################################zz*iiiii;;;;;;;;;;;i*****iii;;;;;;;;;;*****i###################################
###########################z########*i***i;;;;;;;;;;;i******iiiiiiiiiiiii*iiii##z################################
###############################z####*****i;;;;;;;;;;;*******;;;;;;;;;;;i****ii###################################
####################################*****i;;;;;;;;;;;*******;;;;;;;;;;;i*****i###################################
####################################*****i;;;;;;;;;;;i******;;;;;;;;;;;i****ii###################################
####################################****ii;;;;;;;;;;;iii****;;;;;;;;;;;i****ii###################################
####################################**i**i;;;;;;;;;;;iiiiiii;;;;;;;;;;;i*****i###################################
####################################**ii*i;;;;;;;;;;;iiiiiii;;:;;;;;;;;iiiii*i###################################
####################################**iiii;;;;;;;;;;;iiiiiii;;;;;;;;;;;iiiiiii###################################
####################################*iiiii;;;;;;;;;;;ii**iii;;;;;;;;;;;i*iiiii###################################
####################################**i*ii;;;;;;;;;;;******i;;;;;;;;;;;i*iiiii###################################
####################################*ii*ii;;;;;;;;;;;**+++**;;;;;;;;;;;i*iiiii###################################
####################################*iii*i;;;;;;;;;;;**+++**;;;;;;;;;;;iiiiiii###################################
####################################*iii*i;;;;;;;;;;;**+****;;;;;;;;;;;iii*iii###################################
####################################*iii*i;;;;;;;;;;;*******;;;;;;;;;;;i*iiiii###################################
####################################*****i;;;;;;;;;;;*******;;;;;;;;;;;i***iii###################################
####################################******;;;;;;;;;;;*******;;;;;;;;;;;i*****;###################################
####################################******;;;;;;;;;;;*******;;;;;;;;;;;i*****;###################################
####################################******;;;;;;;;;;;*******;;;;;;;;;;;i*****;###################################
####################################*****i;;;;;;;;;;;*******;;;;;;;;;;;i*****;###################################
####################################*****i;;;;;;;;;;;*******;;;;;;;;;;;i*****;###################################
####################################******;;;;;;;;;;;*******;;;;;;;;;;;i*****i###################################
####################################*****i;;;;;;;;;;;*******;;;;;;;;;;;i*****i###################################
####################################******;;;;;;;;;;;*******;;;;;;;;;;;i*****i###z###############################
##################################zz*****i;;;;;;;;;;;*******;;;;;;;;;;;i*****i###################################
##################################**iiiii*iiiii******+++++++*;;;;;;;;;;i*****i###################################
##################################iiiiiiiiiii***+++++++++++++*****iiiiii*i**ii**+z###############################
##################################iiiiiiiiiiii**+++++++++++++++++*iii*iiiiiiiiii+################################
##################################iiiiiiii*iiii*+++++++++++++++++***ii*iiiiiiiii+################################
##################################iiiiiiiiiiii**+++++++++++++++++*iiiiii*iiiiiii+################################
##################################iiiiii;,,,,,,;***ii**++++*+++++*iiiiiiiiiiiiii+################################
##################################*****i:      ,iiiiii***********i::::::;iiiiii;+################################
##################################*****i:      ,iiiiii*******iiii:`    `:iiiiii;+################################
##################################*****i:      ,iiiiii*******iiii:      :******;+################################
##################################iii***:`     :iiiiii*******iiii:`     :*ii**i;+################################
##################################******i,....,:;;;iii*******iiii:`     :*ii***;+################################
##################################++++++*;;;;;;;;;;;;;i******iiii:``````;******i+################################
##################################++++++*;;;;;;;;;;;;;i******i;;;;;;;;;;*++++++i+################################
##################################++++++*;;;;;;;;;;;;;i******;;;;;;;;;;;*++++++i+################################
##################################++++++*;;;;;;;;;;;;;i******;;;;;;;;;;;*++++++i+################################
##################################++++++*;;;;;;;;;;;;;i******;;;;;;;;;;;*++++++i+################################
##################################*******iiiiiii;;;;;;;i;;i;;;;;;;;;;;;;*++++++i+################################
##################################*******iiiiiii;;;;;;;iiiii;;;;;;iiiiii*******i+################################
##################################*******iiiiiii;;;;;;;iiiii;;;;;iiiiiii*******i+################################
##################################*******iiiiiii;;;;;;;;;;ii;;;;;iiiiiii*******i+################################
##################################******iiiiiiii;;;;;;;;;;;;i;;;;iiiiiii*******i+#z##############################
##################################iiiiii;.`....:;;;;;;i******;;;;iiiiiii*******i+#z##############################
##################################iiiiii:`     ,;;;;;;i******;;;;;;;;;;;i******i+################################