using
System;
using
System.Collections.Generic;
class
GFG{
static
int
height(
int
s, List<
int
> []adj,
int
[]visited)
{
visited[s] = 1;
int
h = 0;
foreach
(
int
child
in
adj[s]) {
if
(visited[child] == 0) {
h = Math.Max(h, 1 + height(child, adj,
visited));
}
}
return
h;
}
static
int
minimumGroups(List<
int
> []adj,
int
N)
{
int
[]visited=
new
int
[N + 1];
int
groups =
int
.MinValue;
for
(
int
i = 1; i <= N; i++) {
if
(visited[i] == 0) {
int
comHeight;
comHeight = height(i, adj, visited);
groups = Math.Max(groups, comHeight);
}
}
return
groups;
}
static
void
addEdge(List<
int
> []adj,
int
u,
int
v)
{
adj[u].Add(v);
adj[v].Add(u);
}
public
static
void
Main(String[] args)
{
int
N = 5;
List<
int
> []adj =
new
List<
int
>[N + 1];
for
(
int
i = 0 ; i < N + 1; i++)
adj[i] =
new
List<
int
>();
addEdge(adj, 1, 2);
addEdge(adj, 3, 2);
addEdge(adj, 4, 3);
Console.Write(minimumGroups(adj, N));
}
}