/*
TASK:abc
LANG:C++
*/
/*
  Name: B2 abc
  Author: Radoslav Rachev Varna
  Date: 11/11/06 09:01
  Description: Esenen Shumen 10-12.11.2006
*/
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
#include <stdio.h>
using namespace std;
long long NOD (long long,long long);
int main ()
{
    long long nod,ch=0,zn=1,tmpc=0,tmpz=0;
    string b;
    vector <string> a;
    int i,j,n,ind=0,br;
    scanf ("%d",&n);
    for (i=0;i<n;i++)
        {
            cin >> b;
            a.push_back (b);
        }
    sort (a.begin(),a.end());
    for (i=0;i<n;i++)
        {
            br=a[i].size();
            if (br>a[ind].size())
                {
                    for (j=0;j<a[ind].size();j++)
                        if (a[i][j]!=a[ind][j]) break;
                    if (j>=a[ind].size()) continue;
                }
            ind=i;
            tmpc=1;
            tmpz=1;
            for (j=0;j<br;j++)
                tmpz*=4;
            if (tmpz>zn)
                {
                    ch*=tmpz/zn;
                    zn=tmpz;
                }
            else if (zn>tmpz)
                {
                    tmpc*=zn/tmpz;
                    tmpz=zn;
                }           
            ch+=tmpc;            
        }
    nod = NOD (ch,zn);
    printf ("%I64d %I64d\n",ch/nod,zn/nod);
    return 0;
}

long long NOD (long long a,long long b)
{
    long long tmp;
    while (a && b)
        {
            tmp=a%b;
            a=b;
            b=tmp;
        }
    if (a) return a;
    return b;
}
