#include <bits/stdc++.h>
using namespace std;
int p = 1e9 + 7, k;
long long Ans = 2;
int mul(long long a, long long b) {
  long long res = 1;
  while (b != 0) {
    if (b % 2) (res *= a) %= p;
    (a *= a) %= p, b /= 2;
  }
  return res;
}
bool f = false;
long long A[100005];
struct Init {
  long long inv2, inv3;
  long long exgcd(long long a, long long b, long long &x, long long &y) {
    if (!b) {
      x = 1, y = 0;
      return a;
    }
    long long r = exgcd(b, a % b, x, y);
    long long t = x % p;
    x = y % p;
    y = ((t - a / b * y) % p + p) % p;
    return r;
  }
  void solve() {
    long long x, y;
    exgcd(2, p, x, y);
    inv2 = x;
    exgcd(3, p, x, y);
    inv3 = x;
  }
} Init;
int main() {
  Init.solve();
  scanf("%d", &k);
  for (int i = 1; i <= k; i++) {
    scanf("%lld", &A[i]);
    if (A[i] % 2 == 0) f = true;
  }
  for (int i = 1; i <= k; i++) Ans = mul(Ans, A[i]);
  if (f)
    printf("%lld/%lld\n", (Ans + 2) % p * Init.inv2 % p * Init.inv3 % p,
           Ans * Init.inv2 % p);
  else
    printf("%lld/%lld\n", (Ans - 2 + p) % p * Init.inv2 % p * Init.inv3 % p,
           Ans * Init.inv2 % p);
  return 0;
}
