At least 46 dead in Iraq attacks