Retrograde Analysis: Work Backwards to Solve Problems Effectively