#include<bits/stdc++.h>
using namespace std;
int head[10000],nxt[10000],ver[10000],dian[10000];
int n,m,rd[10000],cd[1000],tot,fz[10000],fm[10000];
void mp(int x,int y)
{
nxt[++tot]=head[x],head[x]=tot,ver[tot]=y;
}
void cs(int x)
{
if(cd[x]!=0)fm[x]*=cd[x];
for(int i=head[x];i;i=nxt[i])
{
//cout<<"now:"<<ver[i]<<endl;
//cout<<"before zi:"<<fz[ver[i]]<<" mu:"<<fm[ver[i]]<<endl;
if(fm[ver[i]]==1)
{
//cout<<"1"<<endl;
fm[ver[i]]=fm[x];
}
else if(fm[ver[i]]==fm[x])
{
//cout<<"2"<<endl;
fz[ver[i]]+=fz[x];
int gcd=__gcd(fz[ver[i]],fm[ver[i]]);
fz[ver[i]]/=gcd;fm[ver[i]]/=gcd;
}
else
{
//cout<<"3"<<endl;
fz[ver[i]]=fz[ver[i]]*fm[x]+fz[x]*fm[ver[i]];
fm[ver[i]]*=fm[x];
int gcd=__gcd(fz[ver[i]],fm[ver[i]]);
fz[ver[i]]/=gcd;fm[ver[i]]/=gcd;
}
//cout<<"after zi:"<<fz[ver[i]]<<" mu:"<<fm[ver[i]]<<endl;
cs(ver[i]);
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
int k;cin>>k;cd[i]=k;
for(int j=1;j<=k;j++)
{
int h;
cin>>h;rd[h]++;
mp(i,h);
}
}
for(int i=1;i<=n;i++)fz[i]=fm[i]=1;
for(int i=1;i<=n;i++)
{
if(rd[i]==0)
{
cs(i);
//cout<<"!"<<fm[i]<<endl;
}
}
for(int i=1;i<=n;i++)
{
if(cd[i]==0)cout<<fz[i]<<" "<<fm[i]<<endl;
}
}
WA+RE,被折磨了一整个晚上了QWQ