Problem:
Score : 400 points

Problem Statement

Given are integers A, B, and N.

Find the maximum possible value of floor(Ax/B) - A × floor(x/B) for a non-negative integer x not greater than N.

Here floor(t) denotes the greatest integer not greater than the real number t.

Constraints

1 ≤ A ≤ 10^{6}

1 ≤ B ≤ 10^{12}

1 ≤ N ≤ 10^{12}

All values in input are integers.

Input

Input is given from Standard Input in the following format:

A B N

Output

Print the maximum possible value of floor(Ax/B) - A × floor(x/B) for a non-negative integer x not greater than N, as an integer.

Sample Input 1

5 7 4

Sample Output 1

2

When x=3, floor(Ax/B)-A×floor(x/B) = floor(15/7) - 5×floor(3/7) = 2. This is the maximum value possible.

Sample Input 2

11 10 9

Sample Output 2

9

Solution in Fortran (GNU Fortran 9.2.1) (judge verdict: Wrong Answer)

      PROGRAM piyo
      IMPLICIT NONE
      integer(16) :: A,B,N
      integer(16) :: maxB,i,ans,buffer,x
      real(16) :: reA,reB,reX
      
      read*,A,B,N
      
      maxB = (N/B) * B
 !     maxB = maxB - B !念のため
      if( maxB<0 ) maxB = 0
      
      ans = 0
   !   do i = maxB,0,-
        
   !     buffer = floor( real(A*i)/real(B) ) - A*floor(real(i)/real(B))
   !     if( buffer>ans )then
   !       ans = buffer
   !     end if
   !   end do
      
      reA = real(A)
      reB = real(B)
      
      reX = real(maxB)
      buffer = int( floor( reA*reX/reB) - A*floor( reX/reB ) )
      ans = max( ans,buffer )
      reX = real(N)
      buffer = int( floor( reA*reX/reB) - A*floor( reX/reB ) )
      ans = max( ans,buffer )
      print*,ans
      
      END PROGRAM