import java.util.Scanner

import scala.collection.mutable
import scala.util.control.Breaks

object Main {
  def main(args: Array[String]): Unit = {
    val sc = new Scanner(System.in)
    val a, b, n = sc.nextLong()

    def f(c: Long, p: Long, aa: Long = 1): Long = {
      (aa * c / p)
    }

    //    return (1 to n.toInt).map(x => f(x, b, a) - (a * f(x, b))).foreach(println)

    if (a > n) {
      println((1 to n.toInt).map { x =>
        f(x, b, a) - (a * f(x, b))
      }.max)
    } else {
      var store = mutable.Set(0L)
      var before: Long = -1L
      var x = 1L
      val br = new Breaks
      br.breakable {
        while (x <= n) {
          val res = f(x, b, a) - (a * f(x, b))
          if (store.max > res) {
            br.break()
          } else if (before == res) {
            br.break()
          } else {
            store += res
            before += res
            x += 1L
          }
        }
      }
      println(store.max)
    }

  }
}
