import
java.io.*;
import
java.util.*;
class
GFG{
static
void
add_edge(ArrayList<ArrayList<Integer>> adj,
int
u,
int
v)
{
adj.get(u).add(v);
adj.get(v).add(u);
}
static
void
dfs(ArrayList<Integer> parent,
ArrayList<ArrayList<Integer>> adj,
int
u,
int
par)
{
parent.set(u,par);
for
(
int
child : adj.get(u))
{
if
(child != par)
dfs(parent, adj, child, u);
}
}
static
void
countSmallerAncestors(
ArrayList<ArrayList<Integer>> adj,
int
n)
{
ArrayList<Integer> parent =
new
ArrayList<Integer>();
for
(
int
i =
0
; i < (
int
)(1e5); i++)
{
parent.add(
0
);
}
dfs(parent, adj,
1
, -
1
);
for
(
int
i =
1
; i <= n; i++)
{
int
node = i;
int
cnt =
0
;
while
(parent.get(node) != -
1
)
{
if
(parent.get(node) < i)
cnt +=
1
;
node = parent.get(node);
}
System.out.print(cnt +
" "
);
}
}
public
static
void
main (String[] args)
{
int
N =
6
;
ArrayList<ArrayList<Integer>> adj =
new
ArrayList<ArrayList<Integer>>();
for
(
int
i =
0
; i < (
int
)(1e5); i++)
{
adj.add(
new
ArrayList<Integer>());
}
add_edge(adj,
1
,
5
);
add_edge(adj,
1
,
4
);
add_edge(adj,
4
,
6
);
add_edge(adj,
5
,
3
);
add_edge(adj,
5
,
2
);
countSmallerAncestors(adj, N);
}
}