-oo-oo------
 -----------------------------------o---------------------o--------------------------
 --o-o-----o----o--oo-o-----ooo-oo---o--
 ---
 ----------------------o---o----o---o-----------o-o-----o
 -o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o
 ---------------------------------o----------------------------oo------------------------------------
 ----------------------------------------------------------------------o-o---------------------
 -----------------o-o--oo------o--------o---o--o----------------oooo-------------ooo-----ooo-----o
 -o-o--o-o--o-----o-----o-o--o-o---oooo-o
 oo--
 oo-ooo
 oooooooooo-ooo-oooooo-ooooooooooooooo--o-o-oooooooooooooo-oooooooooooooo
 ------------------------o------------o-----o----------------
 -ooo--
 o------ooo--o-o-oo--o------o----ooo-----o-----o-----o-ooo-o---o----oo
 ---o----o
 -------o--------------------o--o---------------o---o--o-----
 o----------o----------o----------o----------o----------o----------o----------o----------o----------o
 ------o-o--o-----o--
 ----------------------------------------------------------------------------------------------------
 o----------------------oo----
 -o-ooo-o--o----o--o-o-oo-----------o-o-
 o--o--o--o--o--o--o--o--o--o--o--o--
 oooooooo----------
 -o--o--------o--o------o---o-o----------o-------o-o-o-------oo----oo------o------oo--o--
 o---o---o---o---o----o----o----o---o---o---o
 -------------o----ooo-----o-o-------------ooo-----------ooo------o----oo---
 -oo
 ------oo----------o------o-----o---------o------------o----o--o
 ------------o------------------o-----------------------o-----------o
 ---------------o-o----
 oo----------------------o--------------o--------------o-----
 o---------o---------o---------o---------o---------o---------o---------o---------o
 oo-o-ooooo---oo---o-oo---o--o-ooo-o---o-oo---oo---oooo---o---o-oo-oo-o-ooo----ooo--oo--o--oo-o-oo
 oooo--
 ----o---o-------------------------
 -o---o-
 ooo-ooooooo-oo-ooooooooo-oooooooooooooo-oooo-o-oooooooooo--oooooooooooo-oooooooooo-ooooooo
 -o--o-oo---o-o-o--o-o----oo------oo-----o----o-o-o--oo-o--o---o--o----------o---o-o-oo---o--o-oo-o--
 --o---oooo--o-o--o-----o----ooooo--o-oo--o------oooo--------------ooo-o-o----
 ---ooo
 ------------------o----------------------------------o-o-------------
 --------o--------o--------o--------o--------o--------o--------o--------o--------
 ---o--
 oo--o--o--------oo----------------o-----------o----o-----o----------o---o---o-----o---------ooo---
 oo--o-o-o----o-oooo-ooooo---o-oo--o-o--ooo--o--oooo--oo----o----o-o-oooo---o-oooo--ooo-o-o----oo---
 ------oo----o----o-oo-o--------o-----oo-----------------------o------------o-o----oo---------
 o---o---------------
 -o-
 -----------------------------o--o-o-------
 ooo---------
 o-ooooo
 -o-o--
 o-------o-------o-------------
 -----o-----oo-o-o-o-o----o---------oo---ooo-------------o----o---o-o
 ------oooo
 -o---
 --o---o----------o----o----------o--o-o-----o-oo---oo--oo---o-------------oo-----o-------------o---o
 ---o
 oo-
 --o--o----o-o---o--o----o-o--oo-----o-oo--o---o---ooo-o--
 ooo-
 o-oo-o--oo----o-o----------o---o--o----o----o---oo-ooo-o--o-
 ooooo-
 o---o----
 o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-
 ----o----o

YES
 YES
 YES
 YES YES
 YES
 NO
 YES
 NO
 NO
 YES
 NO
 NO
 YES
 YES
 YES
 NO
 YES
 YES
 YES
 YES NO
 YES
 YES
 NO
 NO
 YES
 YES
 NO
 YES
 YES
 YES
 YES
 YES
 NO
 NO
 YES
 NO
 NO
 NO
 NO
 YES
 YES
 YES
 YES
 NO
 NO
 NO
 YES
 YES
 YES
 YES
 NO
 YES
 YES
 YES
 NO
 YES
 YES
 YES
 NO
 YES
 NO
 YES
 NO
 NO
 YES
 YES

#include <bits/stdc++.h>
using namespace std;
const long double PI = 3.141592653589793;
const long double E = 2.71828182845904523;
const long long LLINF = 4000000009000000099;
const long long INF = 1009000099;
const long long MOD7 = 1000000007;
const long long MOD9 = 1000000009;
template <class A, class B, class C>
struct triple {
  A first;
  B second;
  C third;
  triple(A, B, C);
  triple();
};
template <class A, class B, class C>
triple<A, B, C>::triple(A a, B b, C c) {
  first = a;
  second = b;
  third = c;
}
template <class A, class B, class C>
triple<A, B, C>::triple() {}
template <class A, class B, class C>
triple<A, B, C> make_triple(A a, B b, C c) {
  triple<A, B, C> t(a, b, c);
  return t;
}
template <class A, class B, class C>
bool operator<(triple<A, B, C> a, triple<A, B, C> b) {
  if (a.first != b.first) return a.first < b.first;
  if (a.second != b.second) return a.second < b.second;
  if (a.third != b.third) return a.third < b.third;
}
template <class T>
T inline sqr(T a) {
  return a * a;
}
long long bpow(long long a, long long d, long long mod) {
  if (d == 0) return 1;
  long long t = bpow(a, d / 2, mod);
  t = (t * t) % mod;
  if (d & 1) t = (t * a) % mod;
  return t;
}
long long bpow(long long a, long long d) {
  if (d == 0) return 1;
  long long t = bpow(a, d / 2);
  t = (t * t);
  if (d & 1) t = (t * a);
  return t;
}
long long gcd(long long a, long long b) {
  while (a && b)
    if (a > b)
      a %= b;
    else
      b %= a;
  return a + b;
}
long long lcm(long long a, long long b) { return a / gcd(a, b) * b; }
long long C(long long n, long long k) {
  long long res = 1;
  for (int i = 1; i <= k; ++i) res = res * (n - k + i) / i;
  return res;
}
long long C(long long n, long long k, long long mod) {
  long long u = 1, d = 1;
  for (int i = 2; i <= n; ++i) u = (u * i) % mod;
  int x = max(k, n - k), z = min(k, n - k);
  for (int i = 2; i <= x; ++i) {
    d = (d * i) % mod;
    if (i <= z) d = (d * i) % mod;
  }
  d = bpow(d, mod - 2, mod);
  long long res = (u * d) % mod;
  return res;
}
void solve() {
  string s;
  cin >> s;
  int cnt1 = 0, cnt2 = 0;
  for (int i = 0; i < s.length(); ++i)
    if (s[i] == '-')
      cnt1++;
    else
      cnt2++;
  if (cnt2 == 0 || cnt1 % cnt2 == 0)
    cout << "YES";
  else
    cout << "NO";
};
int main() {
  ios::sync_with_stdio(0);
  solve();
  return 0;
}
