Vertex Spacing

Một cây là một đồ thị liên thông và không chứa bất kỳ chu trình nào.

Khoảng cách giữa hai đỉnh của cây là độ dài (tính bằng số cạnh) của đường đi ngắn nhất nối giữa hai đỉnh đó.

Cho một cây gồm $n$ đỉnh và một số nguyên dương $k$. Hãy xác định số lượng cặp đỉnh phân biệt có khoảng cách giữa chúng đúng bằng $k$. Hai cặp $(u, v)$ và $(v, u)$ được coi là cùng một cặp.

Dữ liệu vào

Dòng đầu tiên chứa hai số nguyên $n$ và $k$ ($1 ≤ n ≤ 50000$, $1 ≤ k ≤ 500$), lần lượt biểu thị số lượng đỉnh của cây và khoảng cách yêu cầu giữa các đỉnh.

Trong $n - 1$ dòng tiếp theo, mỗi dòng chứa hai số nguyên $a_i$ và $b_i$ ($1 ≤ a_i, b_i ≤ n$, $a_i ≠ b_i$) mô tả một cạnh nối trực tiếp giữa hai đỉnh $a_i$ và $b_i$. Tất cả các cạnh được cho đều phân biệt.

Kết quả

In ra một số nguyên duy nhất, biểu thị số lượng cặp đỉnh phân biệt của cây có khoảng cách giữa chúng đúng bằng $k$.

Chấm điểm

Subtask 1 (30 points). $n ≤ 2000$

Subtask 2 (70 points). $1 ≤ n ≤ 50000$

Ví dụ

Input

5 2
1 2
2 3
3 4
2 5

Output

4

Ghi chú

Trong ví dụ mẫu, các cặp đỉnh có khoảng cách bằng $2$ gồm có $(1, 3)$, $(1, 5)$, $(3, 5)$ và $(2, 4)$.

Tutorial

Nộp bài

Đăng nhập để nộp bài.

Giới hạn

Thời gian 3.0s
Bộ nhớ 512MB
Tổng điểm 100.0