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++14 (GCC 5.4.1) (judge verdict: Accepted)

#include <bits/stdc++.h>

#define int long long

using namespace std;

 main () {   
 	string s;
 	cin >> s;
 	int t = 0;
 	int sum = 0;
 	int a = 0;
 	for (int i = 0;i < s.size ();i ++) {
 		t *= 10;
 		int x = 0;
 		if (i == 0) x = (s[0] - '0');
 		else x = 9;
 		t += x;
 		sum += x;
 		a *= 10;
 		a += (s[i] - '0');
 	}
 	if (a == t) cout << sum;
 	else cout << sum - 1;
    return 0;           		
}