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

#include <stdio.h>
#include <math.h>
#include <stdlib.h>



int main(void)
{
	long int n;
long int fk=0;
	int mc=0,i,j,k,tl=0,x;
	int a[100];
	
	scanf("%lu",&n);
	
	//3141592653589793
	//printf("n%lu\n",n);
       	k=floor(log10(n))+1;
	

	//printf("k%d\n",k);
	for(i=k;i>=1;i--){
		a[i]=floor((n-fk)/pow(10,i-1));
		//printf("ai%d\n",a[i]);
		x=tl+a[i]-1+9*(i-1);
		if (x>mc) mc=x;
		tl+=a[i];
		fk+=a[i]*pow(10,i-1);
	}
	if(tl>mc){mc=tl;}
	printf("%d\n",mc);
	
	return 0;
}