#include <bits/stdc++.h>
using namespace std;
long long n;
const int MAX = 2;
const long long MOD = 1e9 + 7;
const long long ni = 5e8 + 4;
class Matrix {
 public:
  long long m[MAX][MAX];
  Matrix() { memset(m, 0, sizeof(m)); }
};
Matrix matrixmul(Matrix a, Matrix b) {
  int i, j, k;
  Matrix c;
  for (i = 0; i < MAX; i++)
    for (j = 0; j < MAX; j++) {
      for (k = 0; k < MAX; k++)
        c.m[i][j] = (c.m[i][j] + (a.m[i][k] * b.m[k][j] % MOD)) % MOD;
    }
  return c;
}
Matrix quickpow(Matrix &m, long long n) {
  Matrix b;
  for (int i = 0; i < MAX; ++i) {
    b.m[i][i] = 1;
  }
  while (n >= 1) {
    if (n & 1) b = matrixmul(b, m);
    n = n >> 1;
    m = matrixmul(m, m);
  }
  return b;
}
long long quickpow(long long &m, long long n) {
  long long res = 1;
  while (n >= 1) {
    if (n & 1) res = (res * m) % MOD;
    n = n >> 1;
    m = (m * m) % MOD;
  }
  return res;
}
int main() {
  Matrix b;
  b.m[0][0] = 0;
  b.m[0][1] = 1;
  b.m[1][0] = 2;
  b.m[1][1] = 1;
  Matrix a;
  a.m[0][0] = -ni + MOD;
  a.m[0][1] = ni;
  a.m[1][0] = 1;
  a.m[1][1] = 0;
  long long k, q = 2;
  scanf("%lld", &k);
  while (k--) {
    long long u;
    scanf("%lld", &u);
    b = quickpow(b, u % (MOD - 1));
    q = quickpow(q, u % (MOD - 1));
  }
  b = matrixmul(b, a);
  q = (q * ni) % MOD;
  cout << b.m[0][1] << "/" << q << endl;
  return 0;
}
