river crossing problem in ai