Thinking Forward and Backward: Effective Backward Planning with Large Language Models