Образец решения. А также здесь, здесь и здесь.