D - Bases

Languages: C, C++, Java, Tiger, Python, Pascal, JavaScript, Haskell, C#
Time & Memory limits: (details)

Qué es lo que se obtiene cuando se multiplica $6$ por $9$? Pues la respuesta es $42$, claro esto es si la base que usamos para realizar el cálculo es $13$. Dado un entero $B \ge 2$, el sistema numérico en base $B$ es una manera de escribir enteros usando solamente dígitos entre $0$ y $B - 1$, incluyendo a estos.

Algunas ecuaciones son falsas o verdaderas dependiendo de la base en que son consideradas. Por ejemplo, la ecuación $2+2=4$ es verdadera para $B \ge 5$ (para $B=4$ no porque el dígito $4$ no pertenece a la base $4$), por otro lado $2+2=5$ nunca es verdadero. Por lo que su tarea es escribir una programa que permita saber cuándo una ecuación es verdadera y cuando falsa y en qué base es verdadera.

Input

Cada línea de la entrada es un caso de prueba, cada caso de prueba es de la forma $\texttt{EXPR=EXPR}$, donde $\texttt{EXPR}$ es una expresión aritmética de a lo sumo $17$ caracteres. Todas las expresiones son válidas y contienen solamente las operaciones  $\texttt{*}$ y $\texttt{+}$ y los dígitos del $0$ al $9$.  La entrada termina cuando la línea es solamente $\texttt{=}$.

Output

Por cada caso de prueba se debe de imprimir en una línea la base para la cual la ecuación es verdadera. Si la ecuación es verdadera a partir de una base se imprime $\texttt{B+}$, donde $B$ es la primera base en la que es verdadera, si la ecuación es solo válida para una secuencia de bases solamente se debe de imprimir esta secuencia ordenada de menor a mayor separadas por un espacio. Si la ecuación no es verdadera para ninguna base se imprime $\texttt{*}$.

Sample test(s)

Input
6*9=42 10000+3*5*334=3*5000+10+0 2+2=3 2+2=4 0*0=0 =
Output
13 6 10 * 5+ 2+