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.OutputStream;
        import java.io.IOException;
        import java.io.InputStream;
        import java.io.PrintWriter;
        import java.util.StringTokenizer;
        import java.util.Random;
        import java.io.IOException;
        import java.io.BufferedReader;
        import java.io.InputStreamReader;
        import java.io.InputStream;

/**
 * Built using CHelper plug-in
 * Actual solution is at the top
 */
public class Main {
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        InputReader in = new InputReader(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        TaskB solver = new TaskB();
        solver.solve(1, in, out);
        out.close();
    }

    static class TaskB {
        static final long BUBEN = 100;

        public void solve(int testNumber, InputReader in, PrintWriter out) {
            long n = in.nextLong();
//            System.out.println(n);
            long a=0,b=0;
            int sum = 0;
            if(n%10==0){
                a = (n/2)-1;
//                System.out.println(a);
                b = n/2 + 1;



            }
            else if(n>100){
//                System.out.println(10*((n+"").length()-1));
                 a = (long)(Math.pow((long)10,((long)(n+"").length()-1))-1);
                 b = n-a;


            }
            else {
                 a = Math.max(n-((n%10)+1),0);
                 b = n-a;
            }
//            System.out.println(a+" "+b);
            while (a>0){
                sum+=(a%10);
                a/=10;
            }
            while(b>0){
                sum+=(b%10);
                b/=10;
            }

            out.print(sum);
        }


    }

    static class InputReader {
        public BufferedReader reader;
        public StringTokenizer tokenizer;

        public InputReader(InputStream stream) {
            reader = new BufferedReader(new InputStreamReader(stream), 32768);
            tokenizer = null;
        }

        public String next() {
            while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                try {
                    tokenizer = new StringTokenizer(reader.readLine());
                } catch (IOException e) {

                    throw new RuntimeException(e);
                }
            }
            return tokenizer.nextToken();
        }

        public long nextLong() {
            return Long.parseLong(next());
        }
        public int nextInt() {
            return Integer.parseInt(next());
        }

    }
}