#include <stdio.h>
#include <string.h>
#include <ctype.h>

#define MAX_LEN 110
#define STACK_SIZE 110

char stack[STACK_SIZE][MAX_LEN];
int top;

// Check if character is operator
int isOperator(char c) {
    return (c == '+' || c == '-' || c == '*' || c == '/');
}

// Check if character is operand (a-z or A-Z)
int isOperand(char c) {
    return (isalpha(c));
}

// Convert prefix to infix
int convert(const char* prefix, char* result) {
    int len = strlen(prefix);
    top = -1;
    for (int i = len - 1; i >= 0; i--) {
        char c = prefix[i];
        if (isOperand(c)) {
            // Correct way to assign a single character as a string
            stack[++top] = c;
            stack[top][1] = '\0';
        } else if (isOperator(c)) {
            if (top < 1) return 0;
            char left[MAX_LEN], right[MAX_LEN], expr[MAX_LEN];
            strcpy(left, stack[top--]);
            strcpy(right, stack[top--]);
            snprintf(expr, MAX_LEN, "(%s%c%s)", left, c, right);
            strncpy(stack[++top], expr, MAX_LEN);
            stack[top][MAX_LEN-1] = '\0'; // ensure null-terminated
        } else {
            return 0;
        }
    }
    if (top != 0) return 0;
    strncpy(result, stack[top], MAX_LEN);
    result[MAX_LEN-1] = '\0';
    return 1;
}

int main() {
    int n;
    char expr[MAX_LEN], result[MAX_LEN];
    if (scanf("%d", &n) != 1 || n < 1 || n > 100) {
        printf("Invalid input\n");
        return 0;
    }
    while (n--) {
        scanf("%s", expr);
        int len = strlen(expr);
        if (len < 1 || len > 100) {
            printf("Invalid input\n");
            continue;
        }
        if (convert(expr, result))
            printf("%s\n", result);
        else
            printf("Invalid input\n");
    }
    return 0;
}