#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-8;
const double pi = acos(-1.0);
const int mod = 1e9 + 7;
long long mul(long long a, long long b, long long mod) {
  long long rec = 0;
  while (b) {
    if (b & 1) {
      rec += a;
      if (rec >= mod) rec -= mod;
    }
    b >>= 1;
    a <<= 1;
    if (a >= mod) a -= mod;
  }
  return rec;
}
long long a[200030];
long long powmod(long long x, long long n) {
  long long res = 1;
  while (n > 0) {
    if (n & 1LL) res = mul(res, x, mod);
    x = mul(x, x, mod);
    n >>= 1;
  }
  return res;
}
struct mat {
  long long at[5][5];
};
mat mul(mat a, mat b) {
  mat ret;
  memset(ret.at, 0, sizeof(ret.at));
  for (int i = 0; i < 2; i++) {
    for (int k = 0; k < 2; k++) {
      if (a.at[i][k]) {
        for (int j = 0; j < 2; j++) {
          ret.at[i][j] += a.at[i][k] * b.at[k][j];
          if (ret.at[i][j] >= mod) ret.at[i][j] %= mod;
        }
      }
    }
  }
  return ret;
}
mat expo(mat a, long long k) {
  mat e;
  memset(e.at, 0, sizeof(e.at));
  for (int i = 0; i < 2; i++) e.at[i][i] = 1;
  while (k) {
    if (k & 1LL) e = mul(a, e);
    a = mul(a, a);
    k >>= 1;
  }
  return e;
}
int main() {
  int n;
  cin >> n;
  long long sum = 1;
  for (int i = 0; i < n; i++) {
    scanf("%I64d", &a[i]);
    sum = mul(sum, a[i], mod - 1);
  }
  sum = ((sum - 1) % (mod - 1) + (mod - 1)) % (mod - 1);
  mat ret;
  ret.at[0][0] = 0;
  ret.at[0][1] = 2;
  ret.at[1][0] = 1;
  ret.at[1][1] = 1;
  ret = expo(ret, sum + mod - 2);
  printf("%I64d", (ret.at[0][0] + ret.at[1][0]) % mod);
  printf("/%I64d\n", powmod(2, sum + mod - 1));
  return 0;
}
