#include <bits/stdc++.h>
using namespace std;
int main() {
  char c;
  char prev;
  vector<int> A;
  int i = 0, count = 1;
  scanf("%c", &prev);
  A.push_back(1);
  while (scanf("%c", &c) != EOF) {
    if (c != '+' && c != '-') continue;
    if (c == prev) {
      A[i]++;
    } else {
      if (!(A[i] & 1)) {
        if (i != 0) {
          A[i - 1] += A[i];
          A.erase(A.begin() + i);
          i--;
        }
        A[i]++;
        prev = c;
      } else {
        A.push_back(1);
        i++;
        prev = c;
      }
    }
  }
  int flag = 0;
  while (flag == 0 && A.size() != 1) {
    flag = 1;
    for (vector<int>::iterator it = A.begin(); it != A.end(); it++) {
      if (!((*it) & 1)) {
        flag = 0;
        if (it != A.begin()) {
          *it += *(it - 1);
        }
        if ((it + 1) != A.end()) {
          *it += *(it + 1);
        }
        if ((it + 1) != A.end()) A.erase(it + 1);
        if (it != A.begin()) A.erase(it - 1);
        break;
      }
    }
  }
  if (A.size() == 1 && !(A[0] & 1))
    cout << "Yes\n";
  else
    cout << "No\n";
  return 0;
}
