let inpt = readLine()!.split(separator: " ").map{Int($0)} func sqrt(_ min:Double, _ max:Double, _ target:Double)->Int { if(max-min <= 0.0001) { if(min*min>=target) { return Int((min*2).rounded(.down)) + 1 } else { return Int((max*2).rounded(.down)) + 1 } } let mid = (max + min) / 2.0 if(mid * mid >= target) { return sqrt(min, mid, target) } else { return sqrt(mid, max, target) } } func sqrtInt(_ min:Int, _ max:Int, _ target:Int)->Int { if(max-min==0) { return max*2+1 } if(max-min<=1) { if(max*max == target) { return max*2+1 } else if(min*min == target) { return min*2+1 } else { return -1 } } let mid = (max+min) / 2 if(mid*mid>target) { return sqrtInt(min, mid, target) } else { return sqrtInt(mid, max, target) } } let hankei2 = inpt[0]!*inpt[0]!+inpt[1]!*inpt[1]! var ans = sqrtInt(0, hankei2, hankei2) if(ans < 0) { ans = sqrt(0, Double(hankei2), Double(hankei2)); } print(ans)