#include <bits/stdc++.h>
using namespace std;
int n, k, x, y, ans, check;
vector<int> l[1000003];
int dfs(int x1, int fa) {
  int max1 = 0, sum;
  for (int j = 0; j < l[x1].size(); j++)
    if (l[x1][j] != fa) {
      sum = dfs(l[x1][j], x1);
      if (sum + max1 > k)
        ans++, max1 = min(max1, sum);
      else if (sum > max1)
        max1 = sum;
    }
  if (l[x1].size() == 1)
    return 1;
  else
    return max1 ? max1 + 1 : 0;
}
int main() {
  cin >> n >> k;
  for (int i = 1; i <= n - 1; i++) {
    scanf("%d%d", &x, &y);
    l[x].push_back(y), l[y].push_back(x);
  }
  for (int i = 1; i <= n; i++)
    if (l[i].size() > 1) {
      check = dfs(i, 0);
      if (check >= 1)
        cout << ans + 1;
      else
        cout << ans;
      return 0;
    }
  cout << ans + 1;
  return 0;
}
