#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
const int Q=1<<9;
int las[Q],e[Q],nn[Q],inc=0;
void ins(int x,int y)
{
	e[++inc]=y;
	nn[inc]=las[x];
	las[x]=inc;
}
int mx,mmx[Q];
void dfs(int x,int last,int dep)
{
	int num=0;
	for(int t=las[x];t;t=nn[t]){
		int y=e[t];
		if(y==last)continue;
		dfs(y,x,dep+1);
		++num;
	}
	mmx[dep]=max(mmx[dep],num);
	mx=max(mx,dep);
}
#define ll long long
int main()
{
	int n;
	int now=998244353;
	ll pi=-1;
	scanf("%d",&n);
	for(int i=1,x,y;i<n;i++)
		scanf("%d%d",&x,&y),ins(x,i+n),ins(i+n,x),ins(y,i+n),ins(i+n,y);
	n=n*2-1;
	for(int i=1;i<=n;i++){
		mx=0;
		for(int j=1;j<=n;j++)mmx[j]=0;
		dfs(i,0,1);
		int rem=mx;
		mx=(mx+1)>>1;
		if(mx<=now){
			ll tmp=1;
			for(int j=1;j<rem;j++)
				tmp*=1LL*mmx[j];
			if(mx<now||(mx==now&&tmp<pi))pi=tmp,now=mx;
		}
	}
	printf("%d %lld\n",now,pi);
	return 0;
}