# [Julia], 101 bytes

<!-- language-all: lang-julia -->

    g(h,t)=h>t?string("A","a"^(h-t),"h!"):string("B","o"^round(Int,(t-h)*2/3),"h","o"^round(Int,(t-h)/3))

Arguments to the function are taken in the order `length of Hair`, `height of Tower`.