Problem: You are given a positive integer n.

Let S(x) be sum of digits in base 10 representation of x, for example, S(123) = 1 + 2 + 3 = 6, S(0) = 0.

Your task is to find two integers a, b, such that 0 ≤ a, b ≤ n, a + b = n and S(a) + S(b) is the largest possible among all such pairs.

Input

The only line of input contains an integer n (1 ≤ n ≤ 10^{12}).

Output

Print largest S(a) + S(b) among all pairs of integers a, b, such that 0 ≤ a, b ≤ n and a + b = n.

Examples

Input

35


Output

17


Input

10000000000


Output

91

Note

In the first example, you can choose, for example, a = 17 and b = 18, so that S(17) + S(18) = 1 + 7 + 1 + 8 = 17. It can be shown that it is impossible to get a larger answer.

In the second test example, you can choose, for example, a = 5000000001 and b = 4999999999, with S(5000000001) + S(4999999999) = 91. It can be shown that it is impossible to get a larger answer.

Solution (in JAVA):

Solution:
import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        PrintWriter out = new PrintWriter(System.out);
        Main mm = new Main();
        mm.problemB(new Input(new BufferedReader(new InputStreamReader(System.in))), out);
        out.close();
    }

    static int sumOfDigit(long a)
    {
        String s=((Long)a).toString();
        int n=s.length();
        char[] c=s.toCharArray();
        int res=0;
        for (int i = 0; i < n; i++) {
            res+=c[i]-'0';
        }
        return res;
    }

    static void problemB(Input in, PrintWriter out) throws IOException {
        long n=in.nextLong();
        if(n<10)out.println(n);
        else{
            long a=9;
            while(a<=n){
                a=a*10+9;
            }
            a/=10;
            long b=n-a;
            out.println(sumOfDigit(a)+sumOfDigit(b));
        }
    }

    static void problemA(Input in, PrintWriter out) throws IOException {
        int n=in.nextInt(),k=0;
        String s=in.next();
        char[] c=s.toCharArray();
        for (int i = 0; i < n; i++) {
            if(c[i]=='8')k++;
        }
        int res;
        if(k<n/11)res=k;
        else res=n/11;
        out.println(res);
    }



    static class Input {
        BufferedReader in;
        StringBuilder sb = new StringBuilder();

        public Input(BufferedReader in) {
            this.in = in;
        }

        public Input(String s) {
            this.in = new BufferedReader(new StringReader(s));
        }

        public String next() throws IOException {
            sb.setLength(0);
            while (true) {
                int c = in.read();
                if (c == -1) {
                    return null;
                }
                if (" \n\r\t".indexOf(c) == -1) {
                    sb.append((char) c);
                    break;
                }
            }
            while (true) {
                int c = in.read();
                if (c == -1 || " \n\r\t".indexOf(c) != -1) {
                    break;
                }
                sb.append((char) c);
            }
            return sb.toString();
        }

        public int nextInt() throws IOException {
            return Integer.parseInt(next());
        }

        public long nextLong() throws IOException {
            return Long.parseLong(next());
        }

        public double nextDouble() throws IOException {
            return Double.parseDouble(next());
        }
    }



}