#include<bits/stdc++.h>
using namespace std;

int main(){
  string W;
  cin >> W;
  int SIZE = W.size();
  int A=0;
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'a') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'b') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }  
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'c') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'd') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }    
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'e') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'f') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }  
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'g') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'h') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }      
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'i') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'j') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }  
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'k') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'l') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }    
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'm') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'n') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }  
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'o') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'p') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }      
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'q') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'r') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }  
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 's') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 't') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }     
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'u') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'v') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }  
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'w') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'x') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }      
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'y') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }
  for(int i=0;i<SIZE;i++){
    if(W.at(i) == 'z') A++;
  }
  if(A%2==1){
    cout << "No" << endl;
    return 0;
  }  
  else{
    cout << "Yes" << endl;
  }
}

Measured memory_bytes: 256