再帰はsegmentation faultになるのでよくない