some optimization move puzzle