Solved 1003 Hangover! I am pretty proud of my solution.