South African floods kill at least 300 people