#include <bits/stdc++.h>
using namespace std;
int n,m;
int jd[100005][10],d[100005];
int fz[100005],fm[100005];
void wg(int dian)
{
fz[dian]*=d[dian];
fm[dian]*=d[dian];
for(int i=0;i<d[dian];++i)
{
if(d[jd[dian][i]]!=0)
{
fz[jd[dian][i]]=1;
fm[jd[dian][i]]=fm[dian];
wg(jd[dian][i]);
}
else
{
fz[jd[dian][i]]=fm[jd[dian][i]]+fm[dian]*fz[jd[dian][i]];
fm[jd[dian][i]]=fm[jd[dian][i]]*fm[dian];
}
}
}
int zzxc(int a,int b)
{
if(b==0) return a;
else zzxc(b,a%b);
}
int main(){
cin>>n>>m;
for(int i=0;i<n;++i)
{
fm[i]=1;
cin>>d[i];
for(int j=0;j<d[i];++j)
cin>>jd[i][j];
}
for(int i=0;i<m;++i)
{
fz[i]=1;
fm[i]=1;
wg(i);
}
for(int i=0;i<n;++i)
{
if(d[i]==0)
{
cout<<fz[i]/zzxc(fz[i],fm[i])<<' '<<fm[i]/zzxc(fz[i],fm[i])<<endl;
}
}
return 0;
}