-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

// Generated by Code Flattener.
// https://plugins.jetbrains.com/plugin/9979-idea-code-flattener

import java.io.*;
import java.util.*;

public class TT {
    static Uzi uzi;

    public static void main(String[] args) throws IOException {
        FastReader fk = new FastReader();
        PrintWriter pr = new PrintWriter(System.out);

        String s = fk.next();
        int len = s.length(), e = 0, o = 0;

        for(int i=0; i<len; i++){
            if(s.charAt(i) == '-')
                e ++;
            else
                o++;
        }

        try{
            pr.println(e%o == 0? "YES":"NO");
        }catch (Exception ignored){
            pr.println("YES");
        }

        pr.close();
    }


    private static class FastReader {
        BufferedReader br;
        StringTokenizer st;

        public FastReader() {
            br = new BufferedReader(
                    new InputStreamReader(System.in));
        }

        String next() {
            while (st == null || !st.hasMoreElements()) {
                try {
                    st = new StringTokenizer(br.readLine());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return st.nextToken();
        }

        int nextInt() {
            return Integer.parseInt(next());
        }

        long nextLong() {
            return Long.parseLong(next());
        }

        double nextDouble() {
            return Double.parseDouble(next());
        }

        String nextLine() {
            String str = "";
            try {
                str = br.readLine();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return str;
        }
    }

    private static class Uzi {
        boolean[] primes;
        int N;
        long[] fact;

        public Uzi(){}

        public Uzi(int n) {
            this.N = n;
            this.primes = new boolean[N + 1];
            this.fact = new long[N+1];
        }

        public void fact(){
            fact[0] = 1;

            for(int i =1; i<= N; i++){
                fact[i] = i*fact[i-1];
            }
        }

        public long gcd(long a, long b) {
            if (b == 0)
                return a;
            return gcd(b, a % b);
        }

        public void seive() {
            Arrays.fill(primes, true);
            primes[0] = primes[1] = false;

            for (int i = 2; i * i <= N; i++) {
                if (primes[i]) {
                    for (int j = i * i; j <= N; j += i)
                        primes[j] = false;
                }
            }
        }

        public int countDivisors(long num) {
            int counter = 0;

            for (int i = 1; i < Math.sqrt(num); i++) {
                if (num % i == 0)
                    counter += (i * i == num) ? 1 : 2;
            }
            return counter;
        }

        public boolean binary_search(int[] arr, int key) {
            int s = 0, e = arr.length - 1, curr;

            while (s <= e) {
                curr = (s + e) / 2;
                if (arr[curr] == key)
                    return true;
                else {
                    if (arr[curr] > key)
                        e = curr - 1;
                    else
                        s = curr + 1;
                }
            }

            return false;
        }

        private static int elementJustGreater(int[] arr, int k) {
            int s = 0, e = arr.length - 1, curr;
            int ans = -1;

            while (s <= e) {
                curr = (s + e) / 2;
                if (arr[curr] >= k) {
                    ans = arr[curr];
                    e = curr - 1;
                } else
                    s = curr + 1;
            }

            return ans;
        }

        private static int elementJustSmaller(int[] arr, int k) {
            int s = 0, e = arr.length - 1, curr;
            int ans = -1;

            while (s <= e) {
                curr = (s + e) / 2;
                if (arr[curr] <= k) {
                    ans = arr[curr];
                    s = curr + 1;
                } else
                    e = curr - 1;
            }
            return ans;
        }

        private static void fxn(int[] arr, int n) {
            Stack<Integer> stack = new Stack<>();
            int[] output = new int[n];
            int index, curr;

            for (int i = 0; i < n; i++) {
                curr = arr[i];
                while (!stack.isEmpty() && arr[stack.peek()] <= curr) {
                    index = stack.pop();
                    output[index] = curr;
                }

                stack.push(i);
            }

            while (!stack.isEmpty()) {
                index = stack.pop();
                output[index] = -1;
            }

            System.out.println(Arrays.toString(output));
        }
    }
}