ちなみに、配列で状態を保存しておけば一度捜査したところの無駄な再帰は無くなる