#include <bits/stdc++.h>
using namespace std;
const int N = 1000 * 1000 + 13;
int n, k;
vector<int> g[N];
int ans;
int dfs(int v, int p = -1) {
  if (g[v].size() == 1) return 0;
  vector<int> cur;
  for (auto u : g[v]) {
    if (u == p) continue;
    cur.push_back(dfs(u, v) + 1);
  }
  sort(cur.begin(), cur.end());
  while (int((cur).size()) >= 2) {
    if (cur.back() + cur[int((cur).size()) - 2] <= k) break;
    ++ans;
    cur.pop_back();
  }
  return cur.back();
}
int main() {
  scanf("%d%d", &n, &k);
  for (int i = 0; i < int(n - 1); ++i) {
    int v, u;
    scanf("%d%d", &v, &u);
    --v, --u;
    g[v].push_back(u);
    g[u].push_back(v);
  }
  for (int i = 0; i < int(n); ++i) {
    if (int((g[i]).size()) > 1) {
      dfs(i);
      break;
    }
  }
  printf("%d\n", ans + 1);
  return 0;
}
