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 C (Clang 3.8.0) (judge verdict: Wrong Answer)

#import <stdio.h>

int main(){
    char a[20] = {'\0'};
    char c;
    int N=0;
    while((c = getchar()) != EOF){
        a[N]=c;
        N++;
    }
    for(int i=0;i<N;i++){
        if (a[i] == '9') {
            continue;
        } else if (a[i] == '0') {
            a[i-1]--;
            for (int j=i;j<N;j++){
                a[j] = '9';
            }
        } else if (i<N-1) {
            int nineOnly = 1;
            for(int j=i+1;j<N;j++){
                if(a[j] != '9'){
                    nineOnly = 0;
                    a[j] = '9';
                }
            }
            if(!nineOnly){
                a[i]--;
            }
        } else {
            a[i] = '9';
            a[i-1]--;
        }
    }
    int sum = 0;
    for(int i=0;i<N;i++){
        sum += a[i] - '0';
    }
    printf("%d", sum);
}