http://www.trywildcard.com/challenge/problem1