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( M < 100)then
            if(M/10 > 2) then
                write(*,*) M/10 + 8
            else
                write(*,*) 9
            end if
            stop
        else
            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
    end if

    
    write(*,*) ans
    stop
end program