I - Integración de patrones

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

Definimos un patrón como una secuencia de letras minúsculas en inglés, y caracteres $\texttt{`*'}$ y $\texttt{`?'}$.

Digamos que una cadena $s$ se ajusta a un patrón $a$ si es posible reemplazar los caracteres $\texttt{`*'}$ en $a$ con varias (posiblemente ninguna) letras minúsculas en inglés, y los caracteres $\texttt{`?'}$ con una sola letra minúscula en inglés de forma tal que podamos obtener la cadena $s$ (por ejemplo, la cadena $\texttt{"matcom"}$ se ajusta al patrón $\texttt{"m*a?*m"}$).

Diremos que un patrón $c$ es una integración de dos patrones $a$ y $b$ si se cumplen las siguientes condiciones:

1. Si una cadena $s$ se ajusta a $a$ o $b$, entonces $s$ debe ajustarse a $c$.
2. $c$ debe contener la mínima cantidad posible de caracteres $\texttt{`*'}$.
3. Entre todos los patrones que satisfacen las condiciones anteriores, $c$ debe ser uno de los más largos.
4. Entre todos los patrones que satisfagan las condiciones anteriores, $c$ debe contener el número mínimo posible de $\texttt{`?'}$.

Dado un patrón $a$ y otro $b$, buscar cualquier patrón que sea una integración.

Input

La primera línea de la entrada contiene el patrón $a$, $1 \leq |a| \leq 1000$. La segunda línea contiene el patrón $b$, $1 \leq |b| \leq 1000$. Se garantiza que ambas cadenas dadas son patrones correctos.

Output

Imprima una cadena - una integración de los patrones dados. Si hay más de una solución que cumpla las condiciones 1)-4), imprima cualquiera.

Sample test(s)

Input
mog mat
Output
m??
Input
coders code
Output
code*
Input
icpc* in?
Output
i??*