#include <bits/stdc++.h>
#pragma warning(disable : 4996)
using namespace std;
int n, k;
const int bign = 1000033;
vector<int> eelist[bign];
vector<int> dlist[bign];
int d[bign];
int dushu[bign];
int ans;
int mroot;
void dfs(int u, int pu) {
  for (int i = 0; i < eelist[u].size(); i++) {
    int v = eelist[u][i];
    if (v != pu) {
      dfs(v, u);
      dlist[u].push_back(d[v]);
    }
  }
  sort(dlist[u].begin(), dlist[u].end());
  int mtop = 0;
  int tans = 0;
  for (int i = dlist[u].size() - 1; i >= mtop; i--) {
    tans++;
    int dtmp = dlist[u][i];
    while (mtop < i && dlist[u][mtop] + dtmp + 2 <= k) {
      mtop++;
    }
    d[u] = dtmp + 1;
  }
  if (tans) tans--;
  ans += tans;
}
int main() {
  scanf("%d%d", &n, &k);
  for (int i = 1; i < n; i++) {
    int u, v;
    scanf("%d%d", &u, &v);
    if (!mroot) {
      if (++dushu[u] > 1) mroot = u;
      if (++dushu[v] > 1) mroot = v;
    }
    eelist[u].push_back(v);
    eelist[v].push_back(u);
  }
  dfs(mroot, mroot);
  printf("%d\n", ans + 1);
}
