#include <bits/stdc++.h>
using namespace std;
inline long long read() {
  long long x = 0;
  char ch = getchar();
  bool f = 0;
  for (; !isdigit(ch); ch = getchar())
    if (ch == '-') f = 1;
  for (; isdigit(ch); ch = getchar()) x = x * 10 + ch - '0';
  return f ? -x : x;
}
void write(long long x) {
  if (x < 0) putchar('-'), x = -x;
  if (x >= 10) write(x / 10);
  putchar(x % 10 + '0');
}
void writeln(long long x) {
  write(x);
  puts("");
}
void writep(long long x) {
  write(x);
  putchar(' ');
}
const int N = 100005;
int n, S[N], a[N], top;
char s[N];
int main() {
  scanf("%s", s + 1);
  n = strlen(s + 1);
  for (int i = (int)(1); i <= (int)(n); i++) {
    if (s[i] == '+')
      a[i] = 1;
    else
      a[i] = 0;
  }
  for (int i = (int)(1); i <= (int)(n); i++) {
    S[++top] = a[i];
    if (top > 1 && S[top - 1] == a[i]) top -= 2;
  }
  if (top)
    puts("No");
  else
    puts("Yes");
}
