#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000007;
struct Mat {
  long long M[2][2];
  Mat(long long a00, long long a01, long long a10, long long a11) {
    M[0][0] = a00, M[0][1] = a01, M[1][0] = a10, M[1][1] = a11;
  }
  Mat(long long i) {
    M[0][0] = M[1][1] = i;
    M[0][1] = M[1][0] = 0;
  }
};
Mat operator*(Mat a, Mat b) {
  Mat res(0);
  for (int i = 0; i < 2; i++)
    for (int j = 0; j < 2; j++)
      for (int k = 0; k < 2; k++)
        res.M[i][j] = (res.M[i][j] + a.M[i][k] * b.M[k][j]) % mod;
  return res;
}
Mat operator^(Mat a, long long pow) {
  Mat res(1);
  while (pow) {
    if (pow & 1LL) res = res * a;
    a = a * a;
    pow = pow >> 1;
  }
  return res;
}
long long get_power(long long a, long long pow) {
  long long res = 1;
  while (pow) {
    if (pow & 1LL) res = (res * a) % mod;
    a = (a * a) % mod;
    pow >>= 1;
  }
  return res;
}
int main() {
  Mat mat(mod - 1LL, 1LL, 0LL, 2LL);
  int k;
  cin >> k;
  while (k--) {
    long long pow;
    scanf("%I64d", &pow);
    mat = mat ^ pow;
  }
  long long inv = get_power(2, mod - 2);
  long long pn = ((mat.M[0][0] * inv) + (mat.M[0][1] * inv)) % mod;
  long long qn = ((mat.M[1][0] * inv) + (mat.M[1][1] * inv)) % mod;
  printf("%d/%d", (int)pn, (int)qn);
  return 0;
}
