import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

class Main {
  public static void main(String[] args) throws IOException{
    BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
    String input = bf.readLine();
    System.out.println(check(input));
    bf.close();
  }
  static String check(String s){
    //文字列sの最初の文字について、偶数個あったら、trueを返す。
    if (s.length() == 0) {
      return "Yes";
    }
    char[] cList = s.toCharArray();
    char checkChar = cList[0];
    int count = 0;
    StringBuilder sb = new StringBuilder();
    for (char c : cList) {
      if (c == checkChar) {
        count++;
      } else {
        sb.append(c);
      }
    }
    if (count % 2 == 0) {
      return check(sb.toString());
    } else {
      return "No";
    }
  }
} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io class Main {
  public static void main(String[] args) throws IOException{
    BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
    String input = bf.readLine();
    System.out.println(check(input));
    bf.close();
  }
  static String check(String s){
    //文字列sの最初の文字について、偶数個あったら、trueを返す。
    if (s.length() == 0) {
      return "Yes";
    }
    char[] cList = s.toCharArray();
    char checkChar = cList[0];
    int count = 0;
    StringBuilder sb = new StringBuilder();
    for (char c : cList) {
      if (c == checkChar) {
        count++;
      } else {
        sb.append(c);
      }
    }
    if (count % 2 == 0) {
      return check(sb.toString());
    } else {
      return "No";
    }
  }
} Main public static void main(String[] args) throws IOException{
    BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
    String input = bf.readLine();
    System.out.println(check(input));
    bf.close();
  } main {
    BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
    String input = bf.readLine();
    System.out.println(check(input));
    bf.close();
  } BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); bf new BufferedReader(new InputStreamReader(System.in)) String input = bf.readLine(); input bf.readLine() bf.readLine bf System.out.println(check(input)) System.out.println System.out System System.out check(input) check input bf.close() bf.close bf String[] args args static String check(String s){
    //文字列sの最初の文字について、偶数個あったら、trueを返す。
    if (s.length() == 0) {
      return "Yes";
    }
    char[] cList = s.toCharArray();
    char checkChar = cList[0];
    int count = 0;
    StringBuilder sb = new StringBuilder();
    for (char c : cList) {
      if (c == checkChar) {
        count++;
      } else {
        sb.append(c);
      }
    }
    if (count % 2 == 0) {
      return check(sb.toString());
    } else {
      return "No";
    }
  } check {
    //文字列sの最初の文字について、偶数個あったら、trueを返す。
    if (s.length() == 0) {
      return "Yes";
    }
    char[] cList = s.toCharArray();
    char checkChar = cList[0];
    int count = 0;
    StringBuilder sb = new StringBuilder();
    for (char c : cList) {
      if (c == checkChar) {
        count++;
      } else {
        sb.append(c);
      }
    }
    if (count % 2 == 0) {
      return check(sb.toString());
    } else {
      return "No";
    }
  } if (s.length() == 0) {
      return "Yes";
    } s.length() == 0 s.length() s.length s 0 {
      return "Yes";
    } return "Yes"; "Yes" char[] cList = s.toCharArray(); cList s.toCharArray() s.toCharArray s char checkChar = cList[0]; checkChar cList[0] cList 0 int count = 0; count 0 StringBuilder sb = new StringBuilder(); sb new StringBuilder() for (char c : cList) {
      if (c == checkChar) {
        count++;
      } else {
        sb.append(c);
      }
    } char c cList {
      if (c == checkChar) {
        count++;
      } else {
        sb.append(c);
      }
    } {
      if (c == checkChar) {
        count++;
      } else {
        sb.append(c);
      }
    } if (c == checkChar) {
        count++;
      } else {
        sb.append(c);
      } c == checkChar c checkChar {
        count++;
      } count++ count {
        sb.append(c);
      } sb.append(c) sb.append sb c if (count % 2 == 0) {
      return check(sb.toString());
    } else {
      return "No";
    } count % 2 == 0 count % 2 count 2 0 {
      return check(sb.toString());
    } return check(sb.toString()); check(sb.toString()) check sb.toString() sb.toString sb {
      return "No";
    } return "No"; "No" String s s
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

class Main {
  public static void main(String[] args) throws IOException{
    BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
    String input = bf.readLine();
    System.out.println(check(input));
    bf.close();
  }
  static String check(String s){
    //文字列sの最初の文字について、偶数個あったら、trueを返す。
    if (s.length() == 0) {
      return "Yes";
    }
    char[] cList = s.toCharArray();
    char checkChar = cList[0];
    int count = 0;
    StringBuilder sb = new StringBuilder();
    for (char c : cList) {
      if (c == checkChar) {
        count++;
      } else {
        sb.append(c);
      }
    }
    if (count % 2 == 0) {
      return check(sb.toString());
    } else {
      return "No";
    }
  }
}