/*
TASK:abc
LANG:C++
*/
#include <iostream>
#include <iomanip>
#include <algorithm>
#include <cmath>
#include <cstring>
#define max_ 1000000000
using namespace std;
string a[1000];
int n;
unsigned long long nod(unsigned long long p, unsigned long long q)
{
  while(p!=q)
  {
    if(p>q)
     p-=q;
    else
     if(p<q)
       q-=p;
  }
  return p;
}
bool cmp(string b, string c)
{
 if(b.length()>c.length())
   return false;
 else
   if(b.length()==c.length())
     return b<c;
   else
     return true;
}
bool isFather(string b, string c)
{
  for(int i=0; i<b.length(); i++)
    if(b[i]!=c[i])
      return false;
  return true;
}
int main()
{
  cin>>n;
  double s=0;
  for(int i=0; i<n; i++)
  {
    cin>>a[i];
  //  used[i]=false;
  }
  sort(a,a+n,cmp);
  bool f=false;
  for(int i=0; i<n; i++)
  {
    f=false;
    for(int j=0; j<i; j++)
      if(isFather(a[j],a[i]))
      {
        f=true;
        break;
      }
      if(!f)
        s+=pow(0.25,(double)a[i].length());
  }
  unsigned long long p;
  unsigned long long q=0;
  p=s*max_;
  cout<<(unsigned long long)p/nod(p,max_)<<" "<<(unsigned long long)max_/nod(p,max_)<<endl;
  return 0;
}
