/*
TASK: abc
LANG:C++
*/
#include <iostream.h>
#include <string.h>
#include <math.h>
char a[999][20];
int n;

void del(int l)
{
  for(int i=0; i<20; i++)
   a[l][i]='0';
}

int begin(int x, int y)
{
   int br=0;

   for(int i=0; i<strlen(a[x]); i++)
     if(a[x][i]==a[y][i]) br++;

   if(br==strlen(a[x]) && strlen(a[x]) < strlen(a[y])) return 1;
   return 0;
}

int nod(int m, int n)
{
  while(m!=n)
  {
     if(m>n) m-=n;
     else n-=m;
  }
  return m;
}

int main()
{
  cin >> n;
  for(int i=0; i<n; i++) cin >> a[i];

  for(int p=0; p<n-1; p++)
    for(int k=p+1; k<n; k++)
      if(a[p][0]!='0' && a[k][0]!='0' && begin(p, k)) del(k);

 unsigned x1=0, x2=0, y1=1, y2=1, g;
 for(int u=0; u<n; u++)
  {
   if(a[u][0]!='0')
   {
     x2=1;
     y2=pow(4, strlen(a[u]));
     x1=x1*y2+x2*y1;
     y1=y1*y2;
     g=nod(x1, y1);
     x1/=g;
     y1/=g;
    }
   }
  cout << x1 << " " << y1;
  return 0;
}