Álgebra Fácil

6 soluciones
1000 puntos

Recientemente, Gareth obtuvo mala nota en el álgebra. Para evitar este tipo de acontecimientos desagradables en el futuro, decidió entrenar sus habilidades aritméticas.

Gareth escribió cuatro números enteros a, b, c, d en la pizarra. Durante cada uno de los próximos tres minutos escogió dos números de la pizarra (no necesariamente consecutivos) y los reemplazó por su suma o su producto. Al final se consiguió un solo número resultante. Desafortunadamente, debido a su horrible memoria se olvidó de ese número, pero recuerda los cuatro números originales, la secuencia de las operaciones y que el resultado era un número muy pequeño.

Ayuda a Gareth recordar el número olvidado: Encontrar el número más pequeño que se pueda obtener a partir de los números originales utilizando la secuencia de operaciones en el orden especificado.

Input


La primera línea del INPUT comienza con un número M que indica el número de casos del problema propuesto. (1 ≤ M ≤ 100)

Cada caso está compuesto de la(s) siguiente(s) linea(s):

La primera línea de cada caso contiene cuatro números enteros separados por un espacio: 0 ≤ a, b, c, d ≤ 1000 - los números originales.

La segunda línea contiene tres signos entre ( ' + ' o ' * ' ) separados por un espacio - la secuencia de las operaciones en el orden de realización. ( ' + ' Significa, suma, ' * ' - multiplicación )

Output


Salida, un número entero - el resultado mínimo que se puede obtener aplicando las operaciones a los números originales.

Por favor, no use %lld specificator de leer o escribir los números enteros de 64 bits en C++. Es preferible usar 'cin' ( o también puede usar %I64d ).

Entrada de ejemplo


Input

3
1 1 1 1
+ + *
2 2 2 2
* * +
1 2 3 4
* + +

Output

3
8
9

Coderperu © 2013 Indexo. Todos los derechos reservados.