#include <iostream>

struct fraccion {
   int num, den;
};

fraccion operator+(fraccion a, fraccion b) {
   fraccion r;
   r.num = a.num * b.den + a.den * b.num;
   r.den = a.den * b.den;
   return r;
}

fraccion operator-(fraccion a, fraccion b) {
   fraccion r;
   r.num = a.num * b.den - a.den * b.num;
   r.den = a.den * b.den;
   return r;
}

fraccion operator*(fraccion a, fraccion b) {
   fraccion r;
   r.num = a.num * b.num;
   r.den = a.den * b.den;
   return r;
}

fraccion operator/(fraccion a, fraccion b) {
   fraccion r;
   r.num = a.num * b.den;
   r.den = a.den * b.num;
   return r;
}

int main( ) {
   int n;
   std::cin >> n;

   fraccion a[100];
   for (int i = 0; i < n; ++i) {
      std::cin >> a[i];
   }

   int m;
   std::cin >> m;

   for (int i = 0; i < m; ++i) {
      char c; int x, y, z;
      std::cin >> c >> x >> y >> z;

      if (c == '+') {
         a[x] = a[y] + a[z];
      } else if (c == '-') {
         a[x] = a[y] - a[z];
      } else if (c == '*') {
         a[x] = a[y] * a[z];
      } else if (c == '/') {
         a[x] = a[y] / a[z];
      }
   }

   for (int i = 0; i < n; ++i) {
      std::cout << a[i] << " ";
   }
}
