#提交没问题,但示例中 3 2 输出的是4,而实际输出的是首项
a,b = map(int,input().split())
#第一个数大于第二个数的情况
if a>b:#公差a-b 等差数列:a+(a-b) a b ; a b b-(a-b)   
    c=True
    if b >c: print(2*b-a)#b为等差中项
        
    elif a<c: print(2*a-b)#a为等差中项
        
#第一个数小于第二个数的情况
elif a<b:#公差b-a 等差数列:a-(b-a) a b , a b b+(b-a)
    c=True
    if a>c: print(2*a-b)#a为等差中项
        
    elif b<c: print(2*b-a)#b为等差中项
        
#第一个数等于第二个数的情况
elif a==b:
    print(a)

#调整了一下,以构建等差数列列表方法,用原始位置元素大小和排序后元素大小比较是否一致,分别求首尾项,思路应该更清晰了吧OO
ab=[int(i) for i in input().split()]#一行输入两个数,以空格分隔开
a,b=ab[0],ab[1]#a,b分别代表输入的第一个数和第二个数
ab.sort()#重新排序
if a<b:#初始顺序元素大小比较与和排序后大小一致,将求首项
    c=2*a-b
    ab.insert(0,c)
    print(ab[0])
if a>b:#初始顺序元素大小比较与和排序后大小相反,将求最后一项
    c=2*a-b
    ab.append(c)
    print(ab[-1])
elif a==b:
    print(a)