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 Python (2.7.6) (judge verdict: Wrong Answer)

import sys
import math

def get_read_func(fileobject):
    if fileobject == None :
        return raw_input
    else:
        return fileobject.readline

def main():
    if len(sys.argv) > 1:
        f = open(sys.argv[1])
    else:
        f = None
    read_func = get_read_func(f);
    input_raw = read_func().strip().split()
    [N] = [long(input_raw[0])]

    s = 0
##    if N > (10L**9L):
##        digit =long(math.log(N/(10**9), 10)+1)
##        digit += 9
##    else:
##        digit =long(math.log(N, 10)+1)

    tmp = N
    digit = 0
    while 1:
        tmp /= 10
        digit += 1
        if tmp == 0:
            break;

    if long (10L ** (digit) - 1L)   == N:
        print digit * 9
        exit()

    for i in range(digit , 0, -1):
        h = N / (10 ** (i - 1))
        s += 9 if i != digit else h - 1
        N -= h * (10 ** (i - 1))

    print s

if __name__ == '__main__':
    main()