#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <math.h>

char upper[2000], pri[2000], lower[2000];
int fpos;
int R,C;

void error() {
	exit(1);
}

int integer(char **s, char *end) {
	char *intend;
	int r = strtol(*s,  &intend, 10);
	*s = intend;
	if (intend > end) error();
	return r;
}

int term(char **s, char *end) {
	int r = 1;
	while (*s < end) {
		if ((**s) == ' ') (*s)++;
		else if (isdigit(**s)) r *= integer(s, end);
		else if (**s == '*') (*s)++;
		else if (**s == '+' || **s == '-') break;
		else error();
	}

  //fprintf(stderr, "term: %d\n", r);
	return r;
}

int simple(char *s, char *end) {
	int mul = 1;
	int r = 0;
	while (s < end) {
		switch (*s) {
			case ' ':
				s++;
				break;
			case '+':
				mul = 1;
				s++;
				break;
			case '-':
				mul = -1;
				s++;
				break;
			default:
				r += mul * term(&s, end);
				break;
		}
	}
  //fprintf(stderr, "simple: %d\n", r);
	return r;
}

int fraction() {
	char *upper_start = upper + fpos;
	char *lower_start = lower + fpos;
	while (pri[fpos] == '=') fpos++;
	char *upper_end = upper + fpos;
	char *lower_end = lower + fpos;
	int nom = simple(upper_start, upper_end);
	int den = simple(lower_start, lower_end);
	return nom/den;
}

int psqrt() {
	fpos += 2;
	char *start = pri+fpos;
	while (upper[fpos] == '_') fpos++;
	char *end = pri+fpos;
	return (int)sqrt(simple(start, end));
}

int pcomplex() {
	switch (pri[fpos]) {
		case '\\':
		  return psqrt();
		case '=':
		  return fraction();
		default: {
		  char *tpos = pri + fpos;
			char *end = tpos;
			while (*end != '\0' && *end != '+' && *end != '-') end++;
			fpos = end - pri;
		  return term(&tpos, end);
		}
	}
}

int formula() {
	int mul = 1;
	int r = 0;
	while (fpos < C) {
		switch (pri[fpos]) {
			case ' ':
				fpos++;
				break;
			case '+':
				mul = 1;
				fpos++;
				break;
			case '-':
				mul = -1;
				fpos++;
				break;
			default:
				r += mul * pcomplex();
				break;
		}
	}
	return r;
}

int main() {
	while (scanf("%d %d", &R, &C) == 2 && R > 0) {
		getc(stdin); //eat newline
		if (R >= 2) (void)gets(upper);
		(void)gets(pri);
		if (R >= 3) (void)gets(lower);
		fpos = 0;
		int r = formula();
		printf("%d\n", r);
	}
	return 0;
}