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: Accepted)

import java.util.*;
public class Main
{public static void main(String[] args) {
		Scanner input=new Scanner (System.in);
		long a=input.nextLong();
		long b=a;
		int count=0;
		long sum1=0;
		long sum=0;
		long sum2=0;
		long sum3=0;
	if(a<10){
	sum3=a;
	}else{
		while(a>0) {
			if(a<10) {
				sum1= a;
			}
			sum2+=a%10;
			a/=10;
			count++;
		}
		sum=(count-1)*9+sum1-1;
		sum3=Math.max(sum2, sum);
		}
		System.out.println(sum3);
	}
	
}