Optimal upgrade

Optimal without movement var