31 die in attack on Somali hotel