solve this puzzle without data copy.