beecrowd | 1528

Cordas Emaranhadas

Por Gabriel Dalalio, ITA BR Brazil

Timelimit: 1

Quatro crianças estão brincando segurando duas cordas. Inicialmente, as crianças estão posicionadas nos quatro vértices de um quadrado, númerados de 1 a 4, assim como mostra a figura abaixo:

No começo da brincadeira, as crianças nas posições 1 e 4 seguram uma corda, e as crianças nas posições 2 e 3 seguram outra. A partir disso, as crianças realizam uma sequência de movimentos que podem ser de três tipos:

Você deve desenvolver um programa para prever o final da brincadeira: Após uma dada sequência de movimentos da brincadeira, as cordas podem ser totalmente separadas assim estavam como inicialmente sem que as crianças troquem de lugares?

John Conway é uma das crianças participando da brincadeira. Ele é um garoto muito esperto e decidiu te dar uma dica para resolver o problema: após a sequência de movimentos, as cordas não podem ser totalmente separadas se e somente se a sequência de movimentos é equivalente a uma sequência de movimentos alternantes. Uma sequência de movimentos é alternante se ela alterna os movimentos '+' e '-' entre um movimento de '*', utilizando o formato "+++...+++*---...---*+++...". Por exemplo, "+++", "-*++*-" e "+++*----*" são sequências alternantes. As sequências alternantes são sempre iniciadas com um movimento de '+' ou '-', e não podem possuir movimentos '*' consecutivos, portanto as sequências "*---*++" e "++**--" não são alternantes. A sequência "+-++*+" não é alternante, porém é equivalente a sequência alternante "+*-*", pois as duas sequências deixam as duas cordas emaranhadas do mesmo jeito.

Entrada

A entrada é composta por vários casos de teste. Cada caso de teste consiste de uma linha contendo uma sequência de até 30 movimentos, indicados pelos caracteres '+', '-', e '*'.

Saída

Para cada caso de teste, imprima uma linha com a palavra "YES" caso as cordas possam ser totalmente separadas após a sequência de movimentos, caso contrário, imprima uma linha com a palavra "NO".

Exemplo de Entrada Exemplo de Saída

+

*

**

+-

+*-

+*+

+-++*+

*++++++

++*+*++

NO

YES

YES

YES

NO

YES

NO

YES

YES