DFS
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int N=110;
int max_depth=0; //记录最大层数,方便输出
int cnt[N]={0}; //记录每一层结点树
vector<int>tree[N]; //模拟树
void dfs(int root,int depth){
if(root==0) return;
cnt[depth]++;
max_depth=max(depth,max_depth);
for(int i=0;i<tree[root].size();i++) dfs(tree[root][i],depth+1);
}
int main(){
int n,m;
cin>>n>>m;
for(int i=0;i<m;i++){
int id,k,child;
cin>>id>>k;
for(int j=0;j<k;j++){
cin>>child;
tree[id].push_back(child);
}
}
dfs(1,1);
int maxsum=0,index=0;
for(int i=1;i<=max_depth;i++){
if(cnt[i]>maxsum){
maxsum=cnt[i];
index=i;
}
}
cout<<maxsum<<" "<<index<<endl;
return 0;
}