#!/usr/bin/env python3

from collections import defaultdict,deque

from heapq import heappush, heappop

from bisect import bisect_left, bisect_right

import sys, random, itertools, math

sys.setrecursionlimit(10**5)

input = sys.stdin.readline

sqrt = math.sqrt

def LI(): return list(map(int, input().split()))

def LF(): return list(map(float, input().split()))

def LI_(): return list([int(x)-1 for x in input().split()])

def II(): return int(eval(input()))

def IF(): return float(eval(input()))

def S(): return input().rstrip()

def LS(): return S().split()

def IR(n): return [II() for _ in range(n)]

def LIR(n): return [LI() for _ in range(n)]

def FR(n): return [IF() for _ in range(n)]

def LFR(n): return [LI() for _ in range(n)]

def LIR_(n): return [LI_() for _ in range(n)]

def SR(n): return [S() for _ in range(n)]

def LSR(n): return [LS() for _ in range(n)]

mod = 1000000007

inf = float("INF")



#solve

def solve():

    a, b, n = LI()

    print((min(b - 1, n) * a // b))

    return





#main

if __name__ == '__main__':

    solve()

a,b,n=list(map(int,input().split()))

def f(x):

    return a*x//b-a*(x//b)

if n<b:

    ans =f(n)

else:

    t = n

    u = b - 1

    ans=max(f(t),f(u))

print(ans)

#!/usr/bin/env python3
from collections import defaultdict, deque
from heapq import heappush, heappop
from bisect import bisect_left, bisect_right
import sys, random, itertools, math

sys.setrecursionlimit(10**5)
input = sys.stdin.readline
sqrt = math.sqrt


def LI():
    return list(map(int, input().split()))


def LF():
    return list(map(float, input().split()))


def LI_():
    return list([int(x) - 1 for x in input().split()])


def II():
    return int(eval(input()))


def IF():
    return float(eval(input()))


def S():
    return input().rstrip()


def LS():
    return S().split()


def IR(n):
    return [II() for _ in range(n)]


def LIR(n):
    return [LI() for _ in range(n)]


def FR(n):
    return [IF() for _ in range(n)]


def LFR(n):
    return [LI() for _ in range(n)]


def LIR_(n):
    return [LI_() for _ in range(n)]


def SR(n):
    return [S() for _ in range(n)]


def LSR(n):
    return [LS() for _ in range(n)]


mod = 1000000007
inf = float("INF")
# solve
def solve():
    a, b, n = LI()
    print((min(b - 1, n) * a // b))
    return


# main
if __name__ == "__main__":
    solve()

a, b, n = list(map(int, input().split()))


def f(x):
    return a * x // b - a * (x // b)


if n < b:
    ans = f(n)
else:
    t = n
    u = b - 1
    ans = max(f(t), f(u))
print(ans)

-#!/usr/bin/env python3 -from collections import defaultdict, deque -from heapq import heappush, heappop -from bisect import bisect_left, bisect_right -import sys, random, itertools, math - -sys.setrecursionlimit(10**5) -input = sys.stdin.readline -sqrt = math.sqrt +a, b, n = list(map(int, input().split())) -def LI(): -    return list(map(int, input().split())) +def f(x): +    return a * x // b - a * (x // b) -def LF(): -    return list(map(float, input().split())) - - -def LI_(): -    return list([int(x) - 1 for x in input().split()]) - - -def II(): -    return int(eval(input())) - - -def IF(): -    return float(eval(input())) - - -def S(): -    return input().rstrip() - - -def LS(): -    return S().split() - - -def IR(n): -    return [II() for _ in range(n)] - - -def LIR(n): -    return [LI() for _ in range(n)] - - -def FR(n): -    return [IF() for _ in range(n)] - - -def LFR(n): -    return [LI() for _ in range(n)] - - -def LIR_(n): -    return [LI_() for _ in range(n)] - - -def SR(n): -    return [S() for _ in range(n)] - - -def LSR(n): -    return [LS() for _ in range(n)] - - -mod = 1000000007 -inf = float("INF") -# solve -def solve(): -    a, b, n = LI() -    print((min(b - 1, n) * a // b)) -    return - - -# main -if __name__ == "__main__": -    solve() +if n < b: +    ans = f(n) +else: +    t = n +    u = b - 1 +    ans = max(f(t), f(u)) +print(ans)