hannibal weather