#include <iostream>
#include <numeric>

struct fraccion {
   int num, den;
};

fraccion irreducible(fraccion f) {
   int d = std::gcd(f.num, f.den);
   return { f.num / d, f.den / d };
}

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

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

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

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

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] << " ";
   }
}
