Solution2 by Mike Fontenot