import sys

def main():

    def input():

        return sys.stdin.readline()[:-1]

    K, A, B = list(map(int,input().split()))

    if A+2 >= B:

        print((K+1))

    else:

        t = (K-A+1)//2

        if (K-A+1)%2 == 0:

            print((max(K+1, A+(B-A)*t)))

        else:

            print((max(K+1, 1+A+(B-A)*t)))



if __name__ == '__main__':

    main()

K, A, B = list(map(int,input().split()))

if K >= A+1 and B >= A+2:

    t = K-(A-1)

    print((B+(B-A)*(t//2-1)+t%2))

else:

    print((K+1))

import sys


def main():
    def input():
        return sys.stdin.readline()[:-1]

    K, A, B = list(map(int, input().split()))
    if A + 2 >= B:
        print((K + 1))
    else:
        t = (K - A + 1) // 2
        if (K - A + 1) % 2 == 0:
            print((max(K + 1, A + (B - A) * t)))
        else:
            print((max(K + 1, 1 + A + (B - A) * t)))


if __name__ == "__main__":
    main()

K, A, B = list(map(int, input().split()))
if K >= A + 1 and B >= A + 2:
    t = K - (A - 1)
    print((B + (B - A) * (t // 2 - 1) + t % 2))
else:
    print((K + 1))

-import sys - - -def main(): -    def input(): -        return sys.stdin.readline()[:-1] - -    K, A, B = list(map(int, input().split())) -    if A + 2 >= B: -        print((K + 1)) -    else: -        t = (K - A + 1) // 2 -        if (K - A + 1) % 2 == 0: -            print((max(K + 1, A + (B - A) * t))) -        else: -            print((max(K + 1, 1 + A + (B - A) * t))) - - -if __name__ == "__main__": -    main() +K, A, B = list(map(int, input().split())) +if K >= A + 1 and B >= A + 2: +    t = K - (A - 1) +    print((B + (B - A) * (t // 2 - 1) + t % 2)) +else: +    print((K + 1))