from math import floor,ceil

import fractions

import collections

import itertools

from collections import deque

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



piv=B/A  #基本数



#for i in range(0,30):

#    print(A,i,B,floor(A*i/B)-A*floor(i/B))



#A<=Bなら

#0,0,.. 1,1,.. ... (A-1),(A-1),...が

#先頭から(B%A)の数字まではceil(piv)こ、あとはfloor(piv)こ



cnt=0

#print(ceil(piv)*(B%A))

if A<=B:

    if N>=B-1:

        print((A-1))

    else:

        if ceil(piv)*(B%A)>N:

            print((floor(N/ceil(piv))))

        else:

            N=N-ceil(piv)*(B%A)

            #print(N,N//floor(piv))

            cnt=(B%A)

            print((cnt+N//floor(piv)))

else:  #A>B

    l=[0]

    for i in range(1,B):

        l.append(max(l[i-1],floor(A*i/B)-A*floor(i/B)))

    #print(l)

    if N>=len(l):

        print((l[len(l)-1]))

    else:

        print((l[N]))







from math import floor,ceil

import fractions

import collections

import itertools

from collections import deque

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



piv=B/A  #基本数



#for i in range(0,30):

#    print(A,i,B,floor(A*i/B)-A*floor(i/B))



#A<=Bなら

#0,0,.. 1,1,.. ... (A-1),(A-1),...が

#先頭から(B%A)の数字まではceil(piv)こ、あとはfloor(piv)こ

#→これより、この答えはmod(B)の空間で単調増加とわかる

#よって、f(min(B-1,N))が答え



#A>Bでも同じくmod(B)にて単調増加なのを調べてたはずなので



#いずれにせよf(min(B-1,N))が答え

cnt=0

#print(ceil(piv)*(B%A))

"""

if A<=B:

    if N>=B-1:

        print(A-1)

    else:

        if ceil(piv)*(B%A)>N:

            print(floor(N/ceil(piv)))

        else:

            N=N-ceil(piv)*(B%A)

            #print(N,N//floor(piv))

            cnt=(B%A)

            print(cnt+N//floor(piv))

else:  #A>B

    l=[0]

    for i in range(1,B):

        l.append(max(l[i-1],floor(A*i/B)-A*floor(i/B)))

    #print(l)

    if N>=len(l):

        print(l[len(l)-1])

    else:

        print(l[N])

"""

def f(A,B,N):

    return floor(A*N/B)-A*floor(N/B)

print((f(A,B,min(B-1,N))))



from math import floor, ceil
import fractions
import collections
import itertools
from collections import deque

A, B, N = list(map(int, input().split()))
piv = B / A  # 基本数
# for i in range(0,30):
#    print(A,i,B,floor(A*i/B)-A*floor(i/B))
# A<=Bなら
# 0,0,.. 1,1,.. ... (A-1),(A-1),...が
# 先頭から(B%A)の数字まではceil(piv)こ、あとはfloor(piv)こ
cnt = 0
# print(ceil(piv)*(B%A))
if A <= B:
    if N >= B - 1:
        print((A - 1))
    else:
        if ceil(piv) * (B % A) > N:
            print((floor(N / ceil(piv))))
        else:
            N = N - ceil(piv) * (B % A)
            # print(N,N//floor(piv))
            cnt = B % A
            print((cnt + N // floor(piv)))
else:  # A>B
    l = [0]
    for i in range(1, B):
        l.append(max(l[i - 1], floor(A * i / B) - A * floor(i / B)))
    # print(l)
    if N >= len(l):
        print((l[len(l) - 1]))
    else:
        print((l[N]))

from math import floor, ceil
import fractions
import collections
import itertools
from collections import deque

A, B, N = list(map(int, input().split()))
piv = B / A  # 基本数
# for i in range(0,30):
#    print(A,i,B,floor(A*i/B)-A*floor(i/B))
# A<=Bなら
# 0,0,.. 1,1,.. ... (A-1),(A-1),...が
# 先頭から(B%A)の数字まではceil(piv)こ、あとはfloor(piv)こ
# →これより、この答えはmod(B)の空間で単調増加とわかる
# よって、f(min(B-1,N))が答え
# A>Bでも同じくmod(B)にて単調増加なのを調べてたはずなので
# いずれにせよf(min(B-1,N))が答え
cnt = 0
# print(ceil(piv)*(B%A))
"""
if A<=B:
    if N>=B-1:
        print(A-1)
    else:
        if ceil(piv)*(B%A)>N:
            print(floor(N/ceil(piv)))
        else:
            N=N-ceil(piv)*(B%A)
            #print(N,N//floor(piv))
            cnt=(B%A)
            print(cnt+N//floor(piv))
else:  #A>B
    l=[0]
    for i in range(1,B):
        l.append(max(l[i-1],floor(A*i/B)-A*floor(i/B)))
    #print(l)
    if N>=len(l):
        print(l[len(l)-1])
    else:
        print(l[N])
"""


def f(A, B, N):
    return floor(A * N / B) - A * floor(N / B)


print((f(A, B, min(B - 1, N))))

+# →これより、この答えはmod(B)の空間で単調増加とわかる +# よって、f(min(B-1,N))が答え +# A>Bでも同じくmod(B)にて単調増加なのを調べてたはずなので +# いずれにせよf(min(B-1,N))が答え -if A <= B: -    if N >= B - 1: -        print((A - 1)) +""" +if A<=B: +    if N>=B-1: +        print(A-1) -        if ceil(piv) * (B % A) > N: -            print((floor(N / ceil(piv)))) +        if ceil(piv)*(B%A)>N: +            print(floor(N/ceil(piv))) -            N = N - ceil(piv) * (B % A) -            # print(N,N//floor(piv)) -            cnt = B % A -            print((cnt + N // floor(piv))) -else:  # A>B -    l = [0] -    for i in range(1, B): -        l.append(max(l[i - 1], floor(A * i / B) - A * floor(i / B))) -    # print(l) -    if N >= len(l): -        print((l[len(l) - 1])) +            N=N-ceil(piv)*(B%A) +            #print(N,N//floor(piv)) +            cnt=(B%A) +            print(cnt+N//floor(piv)) +else:  #A>B +    l=[0] +    for i in range(1,B): +        l.append(max(l[i-1],floor(A*i/B)-A*floor(i/B))) +    #print(l) +    if N>=len(l): +        print(l[len(l)-1]) -        print((l[N])) +        print(l[N]) +""" + + +def f(A, B, N): +    return floor(A * N / B) - A * floor(N / B) + + +print((f(A, B, min(B - 1, N))))