Очень смело проверять переполнение try/catch. Но вполне рабочее решение. Принимается