#include <bits/stdc++.h>
using namespace std;
int f[1000010], fir[1000010], nxt[2000010], to[2000010];
int ans, n, v, cnt, vis[1000010];
void add(int x, int y) {
  nxt[++cnt] = fir[x];
  fir[x] = cnt;
  to[cnt] = y;
  vis[x]++;
}
void dfs(int x, int fa) {
  if (vis[x] == 1)
    f[x] = 0;
  else
    f[x] = -0x7f7f7f7f;
  for (int i = fir[x]; i; i = nxt[i]) {
    if (to[i] != fa) {
      dfs(to[i], x);
      if (f[x] + f[to[i]] + 1 > v) {
        ans++;
        f[x] = min(f[x], f[to[i]] + 1);
      } else
        f[x] = max(f[x], f[to[i]] + 1);
    }
  }
}
int main() {
  scanf("%d%d", &n, &v);
  for (int i = 1; i < n; i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    add(x, y);
    add(y, x);
  }
  for (int i = 1; i <= n; i++) {
    if (vis[i] != 1) {
      dfs(i, 0);
      break;
    }
  }
  printf("%d", ans + 1);
  return 0;
}
