#include <bits/stdc++.h>
using namespace std;
long long mod = 1e9 + 7;
long long gcd(long long a, long long b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
long long expo(long long base, long long pow) {
  long long ans = 1;
  while (pow != 0) {
    if (pow & 1 == 1) {
      ans = ans * base;
    }
    base *= base;
    pow /= 2;
  }
  return ans;
}
long long inv(long long x) { return expo(x, mod - 2); }
long long lt[1234][1234], rt[1234][1234], upper[1234][1234], lower[1234][1234];
map<int, vector<int> > mp;
int main() {
  string s;
  cin >> s;
  stack<int> st;
  for (int i = 0; i < s.size(); i++) {
    if (st.empty() || s[i] != st.top()) {
      st.push(s[i]);
    } else {
      st.pop();
    }
  }
  if (st.empty())
    cout << "Yes";
  else
    cout << "No";
}
