Justin Bieber punches fan on face