#include<iostream>
#include<vector>
using namespace std;
vector<int>v100;//邻接表,存储树结构
int book100={0};//记录每层节点数
//dfs,统计每层节点数
void dfs(int index,int level){
booklevel++;
for(int i=0;i<vindex.size();i++){//遍历此节点的左右子节点
dfs(vindexi,level+1);//当全部遍历完此节点的子节点后,层数加1
}
}
int main(){
int n,m;
cin>>n>>m;
//读取树结构
for(int i=0;i<m;i++){
int parent,k;//父节点,子节点数
cin>>parent>>k;
for(int j=0;j<k;j++){
int child;
cin>>child;
vparent.push_back(child);
}
}
dfs(1,1);//从根节点开始深度优先搜索,初始层数为1
int maxmun=0,maxlev=1;
for(int i=0;i<100;i++){
if(booki>maxmun){
maxmun=booki;
maxlev=i;
}
}
cout<<maxmun<<" "<<maxlev<<endl;
return 0;
}