######################################%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&$$$$$$}}}}}}}}}}}}}}}}!!++++!!!!!!!!!!}}}}}}}}}}!!}}
####################################%%%%%%%%%%%%%%%%%%%%%%%%&&&&%%&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$}}}}!!++++!!!!!!!!!!}}!!}}}}}}}}
####################################%%%%%%%%%%%%%%%%%%%%%%%%%%&&%%&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$}}!!++++++!!!!!!!!!!!!}}}}}}
####################################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$}}}}!!++++++!!!!!!!!!!!!}}}}
######################################%%%%%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$}}}}++++++!!!!++++!!!!!!!!
####################################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$}}!!!!++!!++++++++!!!!!!
############################################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$}}}}!!++++++++++++++++++
##################################################%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$}}!!++++++++++++++++++
######################################################%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$}}}}!!++++++++++++++++
########################################################%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$}}!!++++++++++++++++
######################################################%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$}}}}!!++++++++++++++
####################################################%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$}}$$!!++++++++++++++
##################################################%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$}}!!++++++++++++
##############################################%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$!!++++++++++++
############################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$}}!!++++++++++
######################%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&%%&&%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$}}!!++++++++++
####################%%%%%%%%%%&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$}}++++++++++
##############%%%%%%%%%%%%&&&&&&&&$$$$$$}}}}$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$}}!!++++++++
##########%%%%%%%%%%%%%%&&&&$$$$$$$$}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$}}!!++++++++
######%%%%%%%%&&&&&&&&&&&&$$$$$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$}}++++!!++
####%%%%%%%%&&&&&&&&&&&&$$$$$$$$$$$$$$$$}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$&&&&&&&&$$$$$$&&$$$$$$$$$$$$!!++!!++
##%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$$$$$$$&&&&&&$$$$$$$$!!++!!!!
%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$}}++!!++
%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&$$$$$$$$}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$}}}}++!!++
%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%&&&&&&&&&&&&$$$$$$$$}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$&&&&$$$$$$$$$$$$$$}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$!!++++
%%%%%%&&&&&&&&%%%%%%%%%%%%&&&&&&&&&&$$$$$$$$$$$$$$$$}}}}}}}}}}$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!++++
%%&&&&&&&&&&&&%%%%%%%%&&&&$$$$$$}}}}}}}}$$$$$$$$$$$$}}}}}}}}}}$$$$$$$$&&&&&&&&&&&&&&$$$$$$}}}}}}}}}}}}}}!!!!!!!!!!!!!!}}}}}}}}}}}}++++
%%&&&&&&&&&&%%%%%%&&$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$&&&&&&%%%%%%%%&&&&&&$$$$}}}}}}}}}}}}!!!!!!!!!!!!!!!!!!!!}}}}}}}}++++
&&&&&&&&&&%%&&&&$$$$$$$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$&&&&&&%%%%%%%%%%%%&&&&$$$$}}}}}}}}}}}}}}}}}}}}!!!!!!!!!!!!!!}}}}}}!!++
&&&&&&&&&&&&$$$$$$$$$$}}}}!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}$$&&&&%%%%%%%%%%%%%%&&&&$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!++
%%&&&&&&&&$$$$}}$$}}}}!!++++++++++++!!!!!!}}}}}}}}}}}}}}}}}}}}$$&&&&%%%%####%%%%%%&&&&$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!
%%&&&&$$$$}}}}}}}}!!!!!!!!!!++++++!!!!!!!!!!!!}}}}}}}}}}}}}}}}$$&&&&%%##########%%&&&&$$}}}}}}}}!!}}}}}}}}}}}}}}}}}}}}}}$$$$$$}}}}}}!!
%%&&$$$$$$$$$$}}}}}}}}!!!!!!++++!!++!!}}}}!!!!!!}}}}}}}}}}}}$$$$&&%%%%##########%%%%&&$$}}}}}}!!!!!!}}}}}}}}}}$$$$$$$$$$}}$$$$}}}}}}!!
&&&&&&&&&&%%%%%%&&$$$$}}!!!!!!!!!!!!!!}}}}!!!!!!!!!!}}}}}}}}$$&&&&%%##############%%%%&&}}}}!!!!!!!!!!}}}}}}}}}}$$}}$$$$$$}}$$}}}}}}!!
%%%%%%%%######%%%%&&&&$$$$}}}}}}!!!!!!}}}}}}!!!!!!!!}}$$$$$$&&&&%%%%##############%%%%&&$$!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!
##############%%%%%%%%%%&&&&$$$$$$$$}}}}}}}}}}}}$$$$$$$$&&&&&&%%%%##################%%&&$$!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}!!
########%%%%%%%%%%%%%%%%&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&%%%%%%##################%%%%&&}}!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}!!
########%%%%%%%%&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$}}$$$$$$&&%%%%%%%%####################%%%%&&$$!!++++++++++++++++++!!!!!!}}}}}}}}}}}}}}!!
##########%%%%%%&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&%%%%%%%%##############@@########%%%%$$!!++++++++++++++++++!!!!!!!!}}}}}}}}}}}}++
##############%%%%%%&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&%%%%%%##################@@########%%%%%%}}!!++++++++++++!!!!}}}}!!++!!!!}}}}}}}}++
##############%%%%%%%%%%%%%%&&&&&&&&&&$$$$$$$$&&&&%%%%%%%%##################@@##@@######%%%%&&}}!!!!!!!!!!++++!!}}}}!!!!!!!!}}}}}}!!++
################%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&%%%%%%%%################################%%%%&&$$}}!!!!}}}}}}}}}}}}!!!!!!!!!!}}}}}}!!++
##################%%%%%%%%%%%%&&&&&&&&&&&&%%%%%%%%%%%%##################################%%%%%%&&$$}}!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!++
############%%%%####%%%%%%%%%%%%&&%%%%%%%%%%%%%%%%%%%%##################################%%%%%%%%%%$$}}}}}}}}}}$$}}$$$$$$$$}}}}}}}}!!++
##############%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########################@@@@######%%%%%%%%%%&&$$}}}}}}}}}}}}}}}}$$$$$$}}}}}}!!++
################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########################@@########%%%%%%&&&&&&&&$$}}}}}}}}}}}}}}}}}}}}}}}}}}!!++
##############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########################%%%%%%%%&&&&&&&&&&$$$$}}}}}}}}}}}}}}}}}}}}}}}}!!++
####%%%%####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####################%%%%%%%%&&&&&&&&&&&&$$$$$$$$}}}}$$$$}}}}}}}}}}}}}}}}!!++
##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%################%%%%&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$}}$$$$$$}}}}}}}}}}}}!!++
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&%%%%##############%%%%&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$}}}}}}}}!!++
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&%%%%############%%%%&&&&&&&&$$&&$$$$$$$$$$}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$}}}}}}!!++
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&%%&&&&&&&&&&&&%%############%%&&$$}}}}!!!!}}}}}}$$$$}}$$}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$}}!!++
%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&%%########%%%%$$}}!!++++++++!!++!!}}$$$$}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$}}}}++
%%&&&&%%&&&&&&&&&&&&&&&&&&&&%%%%%%%%&&&&&&&&&&&&&&%%%%%%####%%&&$$}}++++++++!!!!!!!!!!}}$$}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$}}++
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%&&&&&&&&&&&&&&&&&&%%%%##%%&&$$}}!!++++++!!}}!!!!}}}}$$$$}}}}}}!!!!!!}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$!!
%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%&&$$}}++++!!}}}}$$}}}}$$$$$$}}}}!!++++!!!!}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$}}
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$}}}}}}}}$$$$$$$$}}$$}}}}}}}}++++++!!}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$}}
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$}}}}}}}}}}}}}}!!++!!!!}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$}}
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$}}}}}}}}}}}}!!!!!!}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$}}
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%&&&&$$}}}}$$$$$$$$$$$$$$$$}}}}}}}}}}}}}}!!}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$}}
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%&&$$$$$$&&&&&&&&$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$}}}}
&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%######%%%%%%%%%%%%&&&&$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$}}}}}}}}
&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%&&&&%%%%%%%%%%%%%%%%%%%%####%%%%%%%%%%%%&&&&$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$}}}}}}}}}}
&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}}}}}}}}}}}
&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&%%%%&&&&&&$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&$$$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}}}}}}}}}}}}}}}}}}}}}!!
&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&%%%%%%%%%%%%%%%%%%&&&&&&&&&&$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}++
&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&$$$$$$$$$$$$$$$$$$$$}}}}}}}}}}}}$$}}}}}}}}}}}}}}}}}}++
&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!++
&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&%%%%%%%%%%%%&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&$$$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!++
&&&&&&%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&$$$$&&&&%%%%%%%%%%%%&&&&&&$$$$$$}}}}}}}}}}}}}}}}$$$$$$$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!++
&&&&&&%%%%%%%%%%%%%%%%%%%%%%&&&&$$$$$$$$&&&&&&&&&&&&&&&&$$$$}}}}}}}}!!!!!!!!!!!!!!!!!!!!}}}}}}!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!
&&&&%%%%%%%%%%%%%%%%%%%%%%&&&&&&$$$$$$$$$$&&&&$$$$$$$$$$}}}}!!!!}}}}}}}}}}}}}}!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!
&&&&%%%%%%%%%%%%%%%%%%%%&&&&&&$$$$$$$$}}$$$$$$$$}}}}!!!!!!}}$$&&&&&&&&&&&&&&&&$$$$$$}}}}}}}}}}}}!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}!!!!
&&&&&&%%%%%%%%%%%%%%%%%%&&&&$$$$}}}}}}}}!!!!}}}}!!}}}}$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!
&&&&&&%%%%%%%%%%%%%%%%&&&&$$$$$$}}}}!!!!++!!!!}}$$$$&&&&%%&&&&&&&&&&&&$$$$$$}}}}}}}}}}}}$$$$}}}}$$}}}}}}}}!!}}}}}}}}}}}}}}}}}}}}}}!!!!
&&&&&&%%%%%%%%%%%%%%&&&&&&$$$$}}}}!!!!!!}}$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!}}}}}}}}}}}}}}!!!!!!
&&&&&&%%%%%%%%%%%%&&&&&&&&$$}}}}}}!!}}$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!!!!!}}}}}}}}}}}}!!!!!!
&&&&%%%%%%%%%%%%%%&&&&&&$$$$}}}}}}$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$}}}}}}}}}}}}}}!!!!!!!!!!!!!!!!}}}}}}}}}}}}!!++!!!!}}}}}}}}}}}}}}!!!!!!
&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$}}$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$}}}}}}}}}}}}}}!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}!!!!!!!!!!}}}}}}}}}}}}!!!!!!