/*
TASK:abc
LANG:C++
*/

#include<iostream>
using namespace std;

int s[20]={0};

class tr
{
public:
	tr*a;
	tr*b;
	tr*c;
	int sa,sb,sc,so;
	int ai;
	int bi;
	int ci;
	int lev;
	tr(int l)
	{
		lev=l;
		ai=bi=ci=0;
		sa=sb=sc=so=0;
	}
	void add(char*k)
	{
		if(k[1]==0)
		{
			switch(k[0])
			{
			case 'A':
				sa=1;
				break;
			case 'B':
				sb=1;
				break;
			case 'C':
				sc=1;
				break;
			default:
				so=1;
			};
		}
		else
		{		
			switch(k[0])
			{
			case 'A':
				if(ai==0)
				{
					a=new tr(lev+1);
					ai=1;
				};
				a->add(k+1);
				break;
			case 'B':
				if(bi==0)
				{
					b=new tr(lev+1);
					bi=1;
				};
				b->add(k+1);
				break;
			case 'C':
				if(ci==0)
				{
					c=new tr(lev+1);
					ci=1;
				};
				c->add(k+1);
			};
		};
	}
	void check(void)
	{
		s[lev]+=(sa+sb+sc+so);
		if(sa==0 && ai==1)
			a->check();
		if(sb==0 && bi==1)
			b->check();
		if(sc==0 && ci==1)
			c->check();
	}
};

int main()
{
	tr tree(0);
	int n;
	cin>>n;
	char b[32];
	for(int i=0;i<n;i++)
	{
		cin>>b;
		tree.add(b);
	};
	tree.check();

	int h=19,w;
	while(s[h]==0 && h>0)
		h--;
	w=h;
	unsigned int sum=0;
	for(h;h>=0;h--)
	{
		sum+=s[h]*(1<<(2*(w-h)));
	};
	w++;
	w*=2;
	while((sum & 1)==0)
	{
		sum=sum>>1;
		w--;
	};
	cout<<sum<<" "<<(1<<w);
	return 0;
}
