nit: please use spaces around arithmetic operators other than **