import java.util.ArrayList;
import java.util.Arrays;
import java.util.PriorityQueue;
import java.util.Scanner;

public class Main {
	Scanner sc = new Scanner(System.in);
	public static void main(String[] args){
		new Main();
	}
	public Main(){
//		new A().doIt();
		new B().doIt();
//		new C().doIt();
//		new D().doIt();
	}
	class A{
		void doIt() {
			int N = sc.nextInt();
			int K = sc.nextInt();
			int X = sc.nextInt();
			int Y = sc.nextInt();
			
			int ans = 0;
			if(N <= K)ans = X*N;
			else ans = X*K + Y*(N - K);
			System.out.println(ans);
		}
	}
	class B{
		void doIt() {
			String str = sc.next();
			char ctr[] = str.toCharArray();
			int alf[] = new int [256];
			for(int i = 0;i < str.length();i++) {
				alf[ctr[i]]++;
			}
			System.out.println(check(alf));
		}
		String check(int alf[]) {
			for(char c = 'a';c <= 'z';c++) {
				if(alf[c] % 2 == 1)return "No";
			}
			return "Yes";
		}
	}
	class C{
		
	}
	class D{
		
	}
} import java.util.ArrayList; ArrayList java.util import java.util.Arrays; Arrays java.util import java.util.PriorityQueue; PriorityQueue java.util import java.util.Scanner; Scanner java.util public class Main {
	Scanner sc = new Scanner(System.in);
	public static void main(String[] args){
		new Main();
	}
	public Main(){
//		new A().doIt();
		new B().doIt();
//		new C().doIt();
//		new D().doIt();
	}
	class A{
		void doIt() {
			int N = sc.nextInt();
			int K = sc.nextInt();
			int X = sc.nextInt();
			int Y = sc.nextInt();
			
			int ans = 0;
			if(N <= K)ans = X*N;
			else ans = X*K + Y*(N - K);
			System.out.println(ans);
		}
	}
	class B{
		void doIt() {
			String str = sc.next();
			char ctr[] = str.toCharArray();
			int alf[] = new int [256];
			for(int i = 0;i < str.length();i++) {
				alf[ctr[i]]++;
			}
			System.out.println(check(alf));
		}
		String check(int alf[]) {
			for(char c = 'a';c <= 'z';c++) {
				if(alf[c] % 2 == 1)return "No";
			}
			return "Yes";
		}
	}
	class C{
		
	}
	class D{
		
	}
} Main Scanner sc = new Scanner(System.in); sc new Scanner(System.in) public static void main(String[] args){
		new Main();
	} main {
		new Main();
	} new Main() String[] args args public Main(){
//		new A().doIt();
		new B().doIt();
//		new C().doIt();
//		new D().doIt();
	} Main {
//		new A().doIt();
		new B().doIt();
//		new C().doIt();
//		new D().doIt();
	} new B().doIt() new B().doIt new B() class A{
		void doIt() {
			int N = sc.nextInt();
			int K = sc.nextInt();
			int X = sc.nextInt();
			int Y = sc.nextInt();
			
			int ans = 0;
			if(N <= K)ans = X*N;
			else ans = X*K + Y*(N - K);
			System.out.println(ans);
		}
	} A void doIt() {
			int N = sc.nextInt();
			int K = sc.nextInt();
			int X = sc.nextInt();
			int Y = sc.nextInt();
			
			int ans = 0;
			if(N <= K)ans = X*N;
			else ans = X*K + Y*(N - K);
			System.out.println(ans);
		} doIt {
			int N = sc.nextInt();
			int K = sc.nextInt();
			int X = sc.nextInt();
			int Y = sc.nextInt();
			
			int ans = 0;
			if(N <= K)ans = X*N;
			else ans = X*K + Y*(N - K);
			System.out.println(ans);
		} int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc int K = sc.nextInt(); K sc.nextInt() sc.nextInt sc int X = sc.nextInt(); X sc.nextInt() sc.nextInt sc int Y = sc.nextInt(); Y sc.nextInt() sc.nextInt sc int ans = 0; ans 0 if(N <= K)ans = X*N;
			else ans = X*K + Y*(N - K); N <= K N K ans = X*N ans X*N X N ans = X*K + Y*(N - K) ans X*K + Y*(N - K) X*K X K Y*(N - K) Y (N - K) N K System.out.println(ans) System.out.println System.out System System.out ans class B{
		void doIt() {
			String str = sc.next();
			char ctr[] = str.toCharArray();
			int alf[] = new int [256];
			for(int i = 0;i < str.length();i++) {
				alf[ctr[i]]++;
			}
			System.out.println(check(alf));
		}
		String check(int alf[]) {
			for(char c = 'a';c <= 'z';c++) {
				if(alf[c] % 2 == 1)return "No";
			}
			return "Yes";
		}
	} B void doIt() {
			String str = sc.next();
			char ctr[] = str.toCharArray();
			int alf[] = new int [256];
			for(int i = 0;i < str.length();i++) {
				alf[ctr[i]]++;
			}
			System.out.println(check(alf));
		} doIt {
			String str = sc.next();
			char ctr[] = str.toCharArray();
			int alf[] = new int [256];
			for(int i = 0;i < str.length();i++) {
				alf[ctr[i]]++;
			}
			System.out.println(check(alf));
		} String str = sc.next(); str sc.next() sc.next sc char ctr[] = str.toCharArray(); ctr str.toCharArray() str.toCharArray str int alf[] = new int [256]; alf new int [256] 256 for(int i = 0;i < str.length();i++) {
				alf[ctr[i]]++;
			} int i = 0; int i = 0; i 0 i < str.length() i str.length() str.length str i++ i++ i {
				alf[ctr[i]]++;
			} {
				alf[ctr[i]]++;
			} alf[ctr[i]]++ alf[ctr[i]] alf ctr[i] ctr i System.out.println(check(alf)) System.out.println System.out System System.out check(alf) check alf String check(int alf[]) {
			for(char c = 'a';c <= 'z';c++) {
				if(alf[c] % 2 == 1)return "No";
			}
			return "Yes";
		} check {
			for(char c = 'a';c <= 'z';c++) {
				if(alf[c] % 2 == 1)return "No";
			}
			return "Yes";
		} for(char c = 'a';c <= 'z';c++) {
				if(alf[c] % 2 == 1)return "No";
			} char c = 'a'; char c = 'a'; c 'a' c <= 'z' c 'z' c++ c++ c {
				if(alf[c] % 2 == 1)return "No";
			} {
				if(alf[c] % 2 == 1)return "No";
			} if(alf[c] % 2 == 1)return "No"; alf[c] % 2 == 1 alf[c] % 2 alf[c] alf c 2 1 return "No"; "No" return "Yes"; "Yes" int alf[] alf class C{
		
	} C class D{
		
	} D public class Main {
	Scanner sc = new Scanner(System.in);
	public static void main(String[] args){
		new Main();
	}
	public Main(){
//		new A().doIt();
		new B().doIt();
//		new C().doIt();
//		new D().doIt();
	}
	class A{
		void doIt() {
			int N = sc.nextInt();
			int K = sc.nextInt();
			int X = sc.nextInt();
			int Y = sc.nextInt();
			
			int ans = 0;
			if(N <= K)ans = X*N;
			else ans = X*K + Y*(N - K);
			System.out.println(ans);
		}
	}
	class B{
		void doIt() {
			String str = sc.next();
			char ctr[] = str.toCharArray();
			int alf[] = new int [256];
			for(int i = 0;i < str.length();i++) {
				alf[ctr[i]]++;
			}
			System.out.println(check(alf));
		}
		String check(int alf[]) {
			for(char c = 'a';c <= 'z';c++) {
				if(alf[c] % 2 == 1)return "No";
			}
			return "Yes";
		}
	}
	class C{
		
	}
	class D{
		
	}
} public class Main {
	Scanner sc = new Scanner(System.in);
	public static void main(String[] args){
		new Main();
	}
	public Main(){
//		new A().doIt();
		new B().doIt();
//		new C().doIt();
//		new D().doIt();
	}
	class A{
		void doIt() {
			int N = sc.nextInt();
			int K = sc.nextInt();
			int X = sc.nextInt();
			int Y = sc.nextInt();
			
			int ans = 0;
			if(N <= K)ans = X*N;
			else ans = X*K + Y*(N - K);
			System.out.println(ans);
		}
	}
	class B{
		void doIt() {
			String str = sc.next();
			char ctr[] = str.toCharArray();
			int alf[] = new int [256];
			for(int i = 0;i < str.length();i++) {
				alf[ctr[i]]++;
			}
			System.out.println(check(alf));
		}
		String check(int alf[]) {
			for(char c = 'a';c <= 'z';c++) {
				if(alf[c] % 2 == 1)return "No";
			}
			return "Yes";
		}
	}
	class C{
		
	}
	class D{
		
	}
} Main
import java.util.ArrayList;
import java.util.Arrays;
import java.util.PriorityQueue;
import java.util.Scanner;

public class Main {
	Scanner sc = new Scanner(System.in);
	public static void main(String[] args){
		new Main();
	}
	public Main(){
//		new A().doIt();
		new B().doIt();
//		new C().doIt();
//		new D().doIt();
	}
	class A{
		void doIt() {
			int N = sc.nextInt();
			int K = sc.nextInt();
			int X = sc.nextInt();
			int Y = sc.nextInt();
			
			int ans = 0;
			if(N <= K)ans = X*N;
			else ans = X*K + Y*(N - K);
			System.out.println(ans);
		}
	}
	class B{
		void doIt() {
			String str = sc.next();
			char ctr[] = str.toCharArray();
			int alf[] = new int [256];
			for(int i = 0;i < str.length();i++) {
				alf[ctr[i]]++;
			}
			System.out.println(check(alf));
		}
		String check(int alf[]) {
			for(char c = 'a';c <= 'z';c++) {
				if(alf[c] % 2 == 1)return "No";
			}
			return "Yes";
		}
	}
	class C{
		
	}
	class D{
		
	}
}
