import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class Main {
	static boolean bElapsed = false;
	List<String> list = new ArrayList<>();
	Set<String> set = new HashSet<>();
	Map<String,String> map = new HashMap<>();

	int[] cnt = new int[26];

	void solve(BufferedReader br) throws Exception {
		String line = br.readLine();
		for (int i=0; i<line.length(); i++) {
			char ch = line.charAt(i);
			cnt[ch-'a']++;
		}
		String rc = "Yes";
		for (int i=0; i<26; i++) {
			if (cnt[i] % 2 > 0) {
				rc = "No";
				break;
			}
		}
		pln(rc);
	}

	void p(char c) {
		System.out.print(c);
	}
	void pln(char c) {
		System.out.println(c);
	}
	void p(long l) {
		System.out.print(l);
	}
	void pln(long l) {
		System.out.println(l);
	}
	void p(String s) {
		System.out.print(s);
	}
	void pln(String s) {
		System.out.println(s);
	}
	public static void main(String[] args) throws Exception {
		long start = System.currentTimeMillis();
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		new Main().solve(br);
		long end = System.currentTimeMillis();
		if (bElapsed) {
			System.out.println((end-start) + "ms");
		}
	}
} import java.io.BufferedReader; BufferedReader java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.ArrayList; ArrayList java.util import java.util.HashMap; HashMap java.util import java.util.HashSet; HashSet java.util import java.util.List; List java.util import java.util.Map; Map java.util import java.util.Set; Set java.util public class Main {
	static boolean bElapsed = false;
	List<String> list = new ArrayList<>();
	Set<String> set = new HashSet<>();
	Map<String,String> map = new HashMap<>();

	int[] cnt = new int[26];

	void solve(BufferedReader br) throws Exception {
		String line = br.readLine();
		for (int i=0; i<line.length(); i++) {
			char ch = line.charAt(i);
			cnt[ch-'a']++;
		}
		String rc = "Yes";
		for (int i=0; i<26; i++) {
			if (cnt[i] % 2 > 0) {
				rc = "No";
				break;
			}
		}
		pln(rc);
	}

	void p(char c) {
		System.out.print(c);
	}
	void pln(char c) {
		System.out.println(c);
	}
	void p(long l) {
		System.out.print(l);
	}
	void pln(long l) {
		System.out.println(l);
	}
	void p(String s) {
		System.out.print(s);
	}
	void pln(String s) {
		System.out.println(s);
	}
	public static void main(String[] args) throws Exception {
		long start = System.currentTimeMillis();
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		new Main().solve(br);
		long end = System.currentTimeMillis();
		if (bElapsed) {
			System.out.println((end-start) + "ms");
		}
	}
} Main static boolean bElapsed = false; bElapsed false List<String> list = new ArrayList<>(); list new ArrayList<>() Set<String> set = new HashSet<>(); set new HashSet<>() Map<String,String> map = new HashMap<>(); map new HashMap<>() int[] cnt = new int[26]; cnt new int[26] 26 void solve(BufferedReader br) throws Exception {
		String line = br.readLine();
		for (int i=0; i<line.length(); i++) {
			char ch = line.charAt(i);
			cnt[ch-'a']++;
		}
		String rc = "Yes";
		for (int i=0; i<26; i++) {
			if (cnt[i] % 2 > 0) {
				rc = "No";
				break;
			}
		}
		pln(rc);
	} solve {
		String line = br.readLine();
		for (int i=0; i<line.length(); i++) {
			char ch = line.charAt(i);
			cnt[ch-'a']++;
		}
		String rc = "Yes";
		for (int i=0; i<26; i++) {
			if (cnt[i] % 2 > 0) {
				rc = "No";
				break;
			}
		}
		pln(rc);
	} String line = br.readLine(); line br.readLine() br.readLine br for (int i=0; i<line.length(); i++) {
			char ch = line.charAt(i);
			cnt[ch-'a']++;
		} int i=0; int i=0; i 0 i<line.length() i line.length() line.length line i++ i++ i {
			char ch = line.charAt(i);
			cnt[ch-'a']++;
		} {
			char ch = line.charAt(i);
			cnt[ch-'a']++;
		} char ch = line.charAt(i); ch line.charAt(i) line.charAt line i cnt[ch-'a']++ cnt[ch-'a'] cnt ch-'a' ch 'a' String rc = "Yes"; rc "Yes" for (int i=0; i<26; i++) {
			if (cnt[i] % 2 > 0) {
				rc = "No";
				break;
			}
		} int i=0; int i=0; i 0 i<26 i 26 i++ i++ i {
			if (cnt[i] % 2 > 0) {
				rc = "No";
				break;
			}
		} {
			if (cnt[i] % 2 > 0) {
				rc = "No";
				break;
			}
		} if (cnt[i] % 2 > 0) {
				rc = "No";
				break;
			} cnt[i] % 2 > 0 cnt[i] % 2 cnt[i] cnt i 2 0 {
				rc = "No";
				break;
			} rc = "No" rc "No" break; pln(rc) pln rc BufferedReader br br void p(char c) {
		System.out.print(c);
	} p {
		System.out.print(c);
	} System.out.print(c) System.out.print System.out System System.out c char c c void pln(char c) {
		System.out.println(c);
	} pln {
		System.out.println(c);
	} System.out.println(c) System.out.println System.out System System.out c char c c void p(long l) {
		System.out.print(l);
	} p {
		System.out.print(l);
	} System.out.print(l) System.out.print System.out System System.out l long l l void pln(long l) {
		System.out.println(l);
	} pln {
		System.out.println(l);
	} System.out.println(l) System.out.println System.out System System.out l long l l void p(String s) {
		System.out.print(s);
	} p {
		System.out.print(s);
	} System.out.print(s) System.out.print System.out System System.out s String s s void pln(String s) {
		System.out.println(s);
	} pln {
		System.out.println(s);
	} System.out.println(s) System.out.println System.out System System.out s String s s public static void main(String[] args) throws Exception {
		long start = System.currentTimeMillis();
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		new Main().solve(br);
		long end = System.currentTimeMillis();
		if (bElapsed) {
			System.out.println((end-start) + "ms");
		}
	} main {
		long start = System.currentTimeMillis();
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		new Main().solve(br);
		long end = System.currentTimeMillis();
		if (bElapsed) {
			System.out.println((end-start) + "ms");
		}
	} long start = System.currentTimeMillis(); start System.currentTimeMillis() System.currentTimeMillis System BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) new Main().solve(br) new Main().solve new Main() br long end = System.currentTimeMillis(); end System.currentTimeMillis() System.currentTimeMillis System if (bElapsed) {
			System.out.println((end-start) + "ms");
		} bElapsed {
			System.out.println((end-start) + "ms");
		} System.out.println((end-start) + "ms") System.out.println System.out System System.out (end-start) + "ms" (end-start) end start "ms" String[] args args public class Main {
	static boolean bElapsed = false;
	List<String> list = new ArrayList<>();
	Set<String> set = new HashSet<>();
	Map<String,String> map = new HashMap<>();

	int[] cnt = new int[26];

	void solve(BufferedReader br) throws Exception {
		String line = br.readLine();
		for (int i=0; i<line.length(); i++) {
			char ch = line.charAt(i);
			cnt[ch-'a']++;
		}
		String rc = "Yes";
		for (int i=0; i<26; i++) {
			if (cnt[i] % 2 > 0) {
				rc = "No";
				break;
			}
		}
		pln(rc);
	}

	void p(char c) {
		System.out.print(c);
	}
	void pln(char c) {
		System.out.println(c);
	}
	void p(long l) {
		System.out.print(l);
	}
	void pln(long l) {
		System.out.println(l);
	}
	void p(String s) {
		System.out.print(s);
	}
	void pln(String s) {
		System.out.println(s);
	}
	public static void main(String[] args) throws Exception {
		long start = System.currentTimeMillis();
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		new Main().solve(br);
		long end = System.currentTimeMillis();
		if (bElapsed) {
			System.out.println((end-start) + "ms");
		}
	}
} public class Main {
	static boolean bElapsed = false;
	List<String> list = new ArrayList<>();
	Set<String> set = new HashSet<>();
	Map<String,String> map = new HashMap<>();

	int[] cnt = new int[26];

	void solve(BufferedReader br) throws Exception {
		String line = br.readLine();
		for (int i=0; i<line.length(); i++) {
			char ch = line.charAt(i);
			cnt[ch-'a']++;
		}
		String rc = "Yes";
		for (int i=0; i<26; i++) {
			if (cnt[i] % 2 > 0) {
				rc = "No";
				break;
			}
		}
		pln(rc);
	}

	void p(char c) {
		System.out.print(c);
	}
	void pln(char c) {
		System.out.println(c);
	}
	void p(long l) {
		System.out.print(l);
	}
	void pln(long l) {
		System.out.println(l);
	}
	void p(String s) {
		System.out.print(s);
	}
	void pln(String s) {
		System.out.println(s);
	}
	public static void main(String[] args) throws Exception {
		long start = System.currentTimeMillis();
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		new Main().solve(br);
		long end = System.currentTimeMillis();
		if (bElapsed) {
			System.out.println((end-start) + "ms");
		}
	}
} Main
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class Main {
	static boolean bElapsed = false;
	List<String> list = new ArrayList<>();
	Set<String> set = new HashSet<>();
	Map<String,String> map = new HashMap<>();

	int[] cnt = new int[26];

	void solve(BufferedReader br) throws Exception {
		String line = br.readLine();
		for (int i=0; i<line.length(); i++) {
			char ch = line.charAt(i);
			cnt[ch-'a']++;
		}
		String rc = "Yes";
		for (int i=0; i<26; i++) {
			if (cnt[i] % 2 > 0) {
				rc = "No";
				break;
			}
		}
		pln(rc);
	}

	void p(char c) {
		System.out.print(c);
	}
	void pln(char c) {
		System.out.println(c);
	}
	void p(long l) {
		System.out.print(l);
	}
	void pln(long l) {
		System.out.println(l);
	}
	void p(String s) {
		System.out.print(s);
	}
	void pln(String s) {
		System.out.println(s);
	}
	public static void main(String[] args) throws Exception {
		long start = System.currentTimeMillis();
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		new Main().solve(br);
		long end = System.currentTimeMillis();
		if (bElapsed) {
			System.out.println((end-start) + "ms");
		}
	}
}
