別解が存在するのでメモ