( @ #############!######!#!######!#############1#############A#######q######A############a######a#a######a#######################q########################a##########################################!###########################!######1#######a######!############Q#######A######!###########a######a#!#######A#################Q########A######a################!#a##################A#a##############a##################!######!#!#