#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
int n, k;
long long dp[N][5], ans;
vector<vector<int>> g;
int dfs(int u, int p) {
  dp[u][0]++;
  int ret = 1;
  for (auto i : g[u]) {
    if (i == p) continue;
    long long sz = dfs(i, u);
    ans += sz * (n - sz);
    ret += sz;
    for (int j = 0; j < k; j++)
      for (int l = 0; l < k; l++)
        ans += dp[u][j] * dp[i][l] * ((k - (l + j + 1) % k) % k);
    for (int j = 0; j < k; j++) dp[u][(j + 1) % k] += dp[i][j];
  }
  return ret;
}
int main() {
  scanf("%d%d", &n, &k);
  g.resize(n);
  for (int i = 0; i < n - 1; i++) {
    int a, b;
    scanf("%d%d", &a, &b);
    g[--a].push_back(--b);
    g[b].push_back(a);
  }
  dfs(0, -1);
  cout << ans / k << endl;
}
