#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
#include<map>
#include<set>
using namespace std;
#define maxn 110
int depth1=0;
int num=0;
vector<int>child[maxn];
int hashTable[maxn]={0};
void DFS(int index,int depth)
{
hashTable[depth]++;
for(int i=0;i<child[index].size();i++)
{
DFS(child[index][i],depth+1);
}
}
int main()
{
int n,m;
scanf("%d%d",&n,&m);
while(m--)
{
int k;
scanf("%d",&k);
int t;
scanf("%d",&t);
for(int i=0;i<t;i++)
{
int a;
scanf("%d",&a);
child[k].push_back(a);
}
}
DFS(1,1);
int Max=0;
int nu=0;
for(int i=0;i<maxn;i++)
{
if(hashTable[i]>Max)
{
Max=hashTable[i];
nu=i;
}
}
printf("%d %d\n",Max,nu);
return 0;
}
就是一定要先定义一个数组记录每一层的个数