package timus;
import java.util.*;
/**
* Created by sherxon on 2016-11-22.
*/
public class IsenbaevNumber1837 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
IGraph graph= new IGraph();
int n=Integer.parseInt(in.nextLine());
for (int i = 0; i < n; i++) {
String[] s=in.nextLine().split(" ");
graph.addVertex(s[0]);
graph.addVertex(s[1]);
graph.addVertex(s[2]);
graph.addEdge(s[0], s[1]);
graph.addEdge(s[1], s[2]);
graph.addEdge(s[0], s[2]);
}
if(n>0 && graph.vertices.get("Isenbaev")!=null){
graph.bfs(graph.vertices.get("Isenbaev"), new LinkedList<>());
}
graph.print();
}
public static class IGraph{
Map<IVertex, HashSet<IVertex>> map= new HashMap<>();
Map<String, IVertex> vertices= new HashMap<>();
public void addVertex(String v){
vertices.putIfAbsent(v, new IVertex(v));
map.putIfAbsent(vertices.get(v), new HashSet<>());
}
public void addVertex(IVertex v){
map.putIfAbsent(v, new HashSet<>());
}
public void addEdge(String v1, String v2){
map.get(vertices.get(v1)).add(vertices.get(v2));
map.get(vertices.get(v2)).add(vertices.get(v1));
}
public void bfs(IVertex vertex, Queue<IVertex> queue){
vertex.visited=true;
queue.add(vertex);
while (!queue.isEmpty()){
IVertex current=queue.remove();
for (IVertex iVertex : map.get(current)) {
if(!iVertex.visited){
iVertex.visited=true;
iVertex.num=current.num+1;
queue.add(iVertex);
}
}
}
}
public void print() {
List<IVertex> list= new ArrayList<>(map.keySet());
Collections.sort(list, (a, b) -> a.elem.compareTo(b.elem));
for (IVertex vertex : list) {
if(vertex.num == 0 && !"Isenbaev".equals(vertex.elem))
System.out.println(vertex.elem + " undefined");
else
System.out.println(vertex.elem + " " + vertex.num);
}
}
private static class IVertex{
private String elem;
private int num;
private boolean visited;
public IVertex(String elem) {
this.elem = elem;
}
public IVertex() {
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
IVertex vertex = (IVertex) o;
return elem.equals(vertex.elem);
}
@Override
public int hashCode() {
return elem.hashCode();
}
}
}
}