Qui danno due soluzioni leggermente diverse, ecco il link.