Two people are playing a game with a string s, consisting of lowercase latin letters. 

On a player's turn, he should choose two consecutive equal letters in the string and delete them. 

For example, if the string is equal to "xaax" than there is only one possible turn: delete "aa", so the string will become "xx". A player not able to make a turn loses.

Your task is to determine which player will win if both play optimally.

Input

The only line contains the string s, consisting of lowercase latin letters (1 ≤ |s| ≤ 100 000), where |s| means the length of a string s.

Output

If the first player wins, print "Yes". If the second player wins, print "No".

Examples

Input


abacaba


Output


No


Input


iiq


Output


Yes


Input


abba


Output


No

Note

In the first example the first player is unable to make a turn, so he loses.

In the second example first player turns the string into "q", then second player is unable to move, so he loses.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {


    public static void main(String[] args) throws IOException {
        in.init(System.in);
        StringBuilder output = new StringBuilder();
        String[] s = toArray(in.next());


        int count = 0;
        for (int end = 1; end < s.length; end++) {
            int start = getRealIndex(end - 1, s);
            if (equal(start, end, s)) {
                count++;
                del(start, end, s);
            }
        }
        if(count % 2 == 0) {
            System.out.println("No");
        } else {
            System.out.println("Yes");
        }
    }

    public static String[] toArray(String s) {
        String[] array = new String[s.length()];
        for (int i = 0; i < s.length(); i++) {
            array[i] = String.valueOf(s.charAt(i));
        }
        return array;
    }

    private static int getRealIndex(int index, String[] s) {
        if (index < 0 || !isNumeric(s[index]))
            return index;
        return Integer.parseInt(s[index]);

    }

    public static boolean isNumeric(String str) {
        return str.matches("-?\\d+(\\.\\d+)?");  //match a number with optional '-' and decimal.
    }


    private static boolean equal(int i, int j, String[] s) {
        return !(j >= s.length || i < 0) && s[i].equals(s[j]);
    }

    private static void del(int start, int end, String[] s) {
        if (start - 1 < 0) {
            s[start] = String.valueOf(-1);
            s[end] = String.valueOf(- 1);
            return;
        }
        String startChar = s[start - 1];
        if (isNumeric(startChar)) {
            s[start] = String.valueOf(startChar);
            s[end] = String.valueOf(startChar);
        } else {
            s[start] = String.valueOf(start - 1);
            s[end] = String.valueOf(start - 1);
        }
    }

    static class in {

        private static BufferedReader reader;
        private static StringTokenizer tokenizer;

        static void init(InputStream input) {
            reader = new BufferedReader(
                    new InputStreamReader(input));
            tokenizer = new StringTokenizer(" ");
        }

        static String nextLine() throws IOException {
            return reader.readLine();
        }

        static String next() throws IOException {
            while (!tokenizer.hasMoreTokens()) {
                tokenizer = new StringTokenizer(
                        reader.readLine());
            }
            return tokenizer.nextToken();
        }

        static boolean hasNext() {
            return tokenizer.hasMoreTokens();
        }

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

        static int nextShort() throws IOException {
            return Short.parseShort(next());
        }

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

        static long nextLong() throws IOException {
            return Long.parseLong(next());
        }
    }
}
//haffabdffdbhk