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 Java8 (OpenJDK 1.8.0) (judge verdict: Runtime Error)

import java.util.*;
public class Main{
    public static void main(String[]args){  
    Scanner sc=new Scanner(System.in);
    String num=sc.next();
    Long nu=Long.parseLong(num);
    char[]s=num.toCharArray();
    long[]aa=new long[num.length()];
    for(int i=0;i<num.length();i++){
        aa[(int)i]=Long.parseLong(""+s[(int)i]);
    }
    long mm=0;
    aa[0]=aa[0]-1;
    if(aa[0]==0){
        aa[0]++;
        aa[1]=aa[1]-1;
        for(int i=2;i<num.length();i++){
            aa[i]=9;
        }
        for(int i=0;i<num.length();i++){
            mm=mm+aa[i];
        }
        aa[0]--;
        aa[1]++;


    }
    
    for(int i=1;i<num.length();i++){
        aa[i]=9;
    }
    long max=0;
    for(int i=0;i<num.length();i++){
        max=max+aa[i];
    }
    if(max>=mm){
    System.out.println(max);
    }
    if(mm>max){
        System.out.println(mm);
    }
    
    
    }
}