-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

import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
import java.util.Arrays;
import java.util.NoSuchElementException;
public class Main {
    private static final PrintStream ps     = System.out;
    private static final InputStream IS     = System.in;
    private static final byte[]      BUFFER = new byte[1024];
    private static int               ptr    = 0;
    private static int               buflen = 0;

    public static void main(String[] args) {
        char[] a = n().toCharArray();
        int pearls = 0;
        int links = 0;
        for (int i = 0; i < a.length; i++) {
            if (a[i] == 'o')
                pearls++;
            else
                links++;
        }
        ps.println(pearls == 0 ? "NO" : links % pearls == 0 ? "YES" : "NO");
    }

    private static boolean hasNextByte() {
        if (ptr < buflen)
            return true;
        else {
            ptr = 0;
            try {
                buflen = IS.read(BUFFER);
            } catch (IOException e) {
                e.printStackTrace();
            }
            if (buflen <= 0)
                return false;
        }
        return true;
    }

    private static int readByte() {
        if (hasNextByte())
            return BUFFER[ptr++];
        else
            return -1;
    }

    private static boolean isPrintableChar(int c) {
        return 33 <= c && c <= 126;
    }

    public static boolean hasNext() {
        while (hasNextByte() && !isPrintableChar(BUFFER[ptr]))
            ptr++;
        return hasNextByte();
    }

    public static String n() {
        if (!hasNext())
            throw new NoSuchElementException();
        StringBuilder sb = new StringBuilder();
        int b = readByte();
        while (isPrintableChar(b)) {
            sb.appendCodePoint(b);
            b = readByte();
        }
        return sb.toString();
    }

    public static long nl() {
        if (!hasNext())
            throw new NoSuchElementException();
        long n = 0;
        boolean minus = false;
        int b = readByte();
        if (b == '-') {
            minus = true;
            b = readByte();
        }
        if (b < '0' || '9' < b)
            throw new NumberFormatException();
        while (true) {
            if ('0' <= b && b <= '9') {
                n *= 10;
                n += b - '0';
            } else if (b == -1 || !isPrintableChar(b))
                return minus ? -n : n;
            else
                throw new NumberFormatException();
            b = readByte();
        }
    }

    public static int ni() {
        long nl = nl();
        if (nl < Integer.MIN_VALUE || nl > Integer.MAX_VALUE)
            throw new NumberFormatException();
        return (int) nl;
    }

    public static double nextDouble() {
        return Double.parseDouble(n());
    }

    private static int[] nia(int n) {
        int[] a = new int[n];
        for (int i = 0; i < n; i++)
            a[i] = ni();
        return a;
    }
}
