Problem:
Score : 300 points

Problem Statement

Find the maximum possible sum of the digits (in base 10) of a positive integer not greater than N.

Constraints

1\leq N \leq 10^{16}

N is an integer.

Input

Input is given from Standard Input in the following format:

N

Output

Print the maximum possible sum of the digits (in base 10) of a positive integer not greater than N.

Sample Input 1

100

Sample Output 1

18

For example, the sum of the digits in 99 is 18, which turns out to be the maximum value.

Sample Input 2

9995

Sample Output 2

35

For example, the sum of the digits in 9989 is 35, which turns out to be the maximum value.

Sample Input 3

3141592653589793

Sample Output 3

137

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

program prob4
    implicit none
    integer(16)::N, M
    integer(16)::i,j,ans,com
    integer::v(17)
    read(*,*) N

    v = 0
    M = N
    do i = 16, 0, -1
        if(N >= 10**i) then
            v(i+1) = N/(10**i)
            N = N - N/(10**i) * 10**i
        end if
    end do

    ans = sum(v)
    do i = 17, 1, -1
        if(v(i) > 0)then
            j = i
            exit
        end if
    end do

    if(M/10 > 0)then
        if(v(j) + v(j-1) > 9) then
            ans = v(j) + v(j-1) + 9*(j-2)
            com = 0
            do i = 1, j-2
                com = v(i)*10**(i-1) + v(j-1)*10**(j-2) + v(j)*10**j
            end do
            if(com > M)then
                ans = ans - 1
            end if
        else if(v(j) > 1)then
            ans = v(j) - 1 + 9*(j-1)
        else
            if(sum(v) - 1 < 9*(j-1))then
                ans = 9*(j-1)
            end if
        end if
    end if

    
    write(*,*) ans
    stop
end program