Здесь и ниже - проверьте возможные переполнения.