#include <iostream>
#include <string.h>
#include <vector>
#include <queue>
#define ll long long
#define INF 10000000
using namespace std;
vector<int> vb;
vector<int> gr[2501];
int s,n;
int daymap[2501];
void bfs(int src)
{
int day[2501];
bool visit[2501];
for(int i=0;i<2501;i++)
{
daymap[i]=-1;
day[i]=-1;
visit[i]=false;
}
visit[src]=1;
day[0]+=1;
daymap[src]=0;
queue<int> q;
q.push(src);
int a;
while(!q.empty())
{
a = q.front();
q.pop();
for(int i=0;i<gr[a].size();i++)
{
if(visit[gr[a][i]]==0)
{
visit[gr[a][i]]=1;
q.push(gr[a][i]);
daymap[gr[a][i]]=daymap[a]+1;
if(day[daymap[gr[a][i]]]==-1)
day[daymap[gr[a][i]]] = 1;
else
day[daymap[gr[a][i]]]+=1;
}
}
}
int day_no=-1;
int MX=0;
for(int i=1;day[i]!=-1;i++)
{
if(day[i]>MX)
{
MX = day[i];
day_no = i;
}
}
cout<<MX<<" "<<day_no<<"\n";
}
int main()
{
int a,t,src;
/*while(cin>>s)
{*/
cin>>s;
for(int i=0;i<s;i++)
{
cin>>n;
gr[i].clear();
if(n==0)
continue;
while(n--)
{
cin>>a;
gr[i].push_back(a);
}
}//s loop
cin>>t;
for(int i=0;i<t;i++)
{
cin>>src;
if(gr[src].size()==0)
{
cout<<0<<"\n";
continue;
}
bfs(src);
}
//}//while
return 0;
}