#include<iostream>
#include<vector>
#include<queue>
using namespace std;
#define MAX 101

vector<int> G[MAX];

int bfs(int id){
	queue<int> Q;
	int temp[MAX] = {}, ans = -1;
	
	Q.push(1);
	
	while(!Q.empty()){
		int n = Q.front(); Q.pop();
		if(n == id){
			ans = temp[n];
			break;
		}
		for(int y : G[n]){
			if(temp[y]==0&&y!=1){
				temp[y] += temp[n] + 1;
				Q.push(y);
			}
		}
	}
	return ans;
}

int main(){
	int n, u, k, v, A[MAX][MAX] = {};
	
	cin>>n;
	
	for(int i = 0; i < n; i++){
		cin>>u>>k;
		for(int j = 0; j < k; j++){
			cin>>v;
			G[u].push_back(v);
		}
	}
	
	for(int i = 1; i <= n; i++){
		cout<<i<<" "<<bfs(i)<<endl;
	}
	
	
	return 0;
}
