#include <bits/stdc++.h>

int n;
std::string t[256];
std::string str;

int dfs(char op, int& i) {
  int res = op == '+' ? 0 : 1;
  i += 1; // '('
  for(;;) {
    char c = str[i];
    if( c == ')' ) {
      return res;
    }
    int t;
    if( c == '+' or c == '*' ) {
      i += 1;
      t = dfs(c, i);      
    }
    else {
      t = c - '0';
    }
    res = ((op == '+') ? res + t : res * t);
    i += 1;
  }
  assert(0);
  return 0;
}

int main() {
  for(;;) {
    for(int i = 0; i < 256; ++i) {
      t[i].clear();
    }
    str.clear();
    scanf("%d", &n);
    if( n == 0 ) break;
    for(int i = 0; i < n; ++i) {
      std::cin >> t[i];
    }
    str += '(';
    for(int i = 0; i < n; ++i) {
      str += t[i][t[i].size()-1];
      if( t[i].size() < t[i+1].size() ) {
        str += '(';
      }
      if( t[i].size() > t[i+1].size() ) {
        for(int j = 0; j < t[i].size() - t[i+1].size(); ++j) {
          str += ')';
        }
      }
    }
    int i = 0;
    int res = dfs('+', i);
    printf("%d\n", res);
  }

  return 0;
}