修正。大体動きますが、終了条件がおかしいようです。