A homeless guy just kissed me- I'm so grossed out

I was on my way out to a night out with friends. I take care of my appearance & get enough hassle from men. I'm well educated, from a nice family, I have good job, and I'm a mother with 2 kids, and I deserve to relax from time to time without being hassled. This is what happened:

A homeless man walked over to me as I was sitting on a bench and asked to buy a cigarette from me- I politely refused, explaining these are my favourite & can't get them in this country (blueberry flavour), plus I need the pack to last me the whole night, but he got so angry at me & said "I'M HOMELESS AND LITERALLY ASKED TO BUY ONE FROM YOU" - I repeated myself & said "no, I'm fine thank you."

He swore at me & walked off, leaving me so shaken up I couldn't go out. I thought he was going to attack me.

This leads me to tonight (in a totally different city visiting my friends, while waiting for them, a homeless man asked me for a cigarette) & this happened:

A homeless man asked me if he could buy a cigarette, so I gave him one. He then kissed me to say "thanks" - I was so grossed out.

I'm so sick of being hassled when I'm out. Why cant you men stop being so creepy everywhere... just leave me be.