Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Nối cạnh

Dễ

  • 100 Điểm
  • 0% Tỉ lệ AC
  • 0 Số AC
  • 256M Bộ nhớ giới hạn
  • 1.0s Giới hạn thời gian

Bạn có \(n\) đỉnh và \(m\) cạnh, tạo thành một số đồ thị cây rời rạc.

Bạn có thể thêm các cạnh mới giữa hai đỉnh thuộc hai cây khác nhau, sao cho đồ thị luôn là cây (không tạo chu trình).

Hãy xác định độ dài lớn nhất của một đường đi đơn giản (không đi qua đỉnh nào quá một lần) trong đồ thị sau khi thêm các cạnh.

Input

Dòng đầu chứa hai số nguyên \(n\) và \(m\) (\(1 \le n \le 100000\), \(0 \le m < n\)).

\(m\) dòng tiếp theo, mỗi dòng chứa hai số \(a_i\), \(b_i\) (\(1 \le a_i, b_i \le n\)) --- đỉnh \(a_i\) và \(b_i\) được nối trực tiếp.

Output

In ra độ dài lớn nhất của đường đi đơn giản sau khi thêm các cạnh hợp lệ.

Example

Test 1

Input
8 6
1 2
1 3
1 4
5 6
5 7
5 8
Output
6

Scoring

  • Subtask 1 (15 điểm): \(m = n - 1\)
  • Subtask 2 (15 điểm): \(b_i = a_i + 1\) với mọi \(i\)
  • Subtask 3 (15 điểm): \(1 \le a_i \le 2\) với mọi \(i\)
  • Subtask 4 (15 điểm): \(n \le 1000\)
  • Subtask 5 (40 điểm): Không có ràng buộc bổ sung

Bình luận

Chưa có bình luận nào.