#include <bits/stdc++.h>
using namespace std;
const int N = 1000024;
int n, k;
vector<int> g[N];
int ans = 0;
int dfs(int v, int p = -1) {
  if (g[v].size() == 1) return 0;
  vector<int> temp;
  for (auto u : g[v]) {
    if (u == p) continue;
    temp.push_back(dfs(u, v) + 1);
  }
  sort(temp.begin(), temp.end());
  while (temp.size() >= 2) {
    if (temp.back() + temp[temp.size() - 2] <= k) break;
    ++ans;
    temp.pop_back();
  }
  return temp.back();
}
int main() {
  ios_base::sync_with_stdio(false);
  cin >> n >> k;
  for (int i = 0; i < int(n - 1); ++i) {
    int u, v;
    cin >> u >> v;
    --u;
    --v;
    g[u].push_back(v);
    g[v].push_back(u);
  }
  for (int i = 0; i < int(n); ++i) {
    if (g[i].size() < 2) continue;
    dfs(i);
    break;
  }
  cout << ans + 1;
  return 0;
}
