Rains, snowfall kill 18, injure 46 in Khyber Pakhtunkhwa