#include <iostream>
#include <vector>

using namespace std;

const int MAXN = 2005;
vector<int> g[MAXN];

int dfs(int v, int p, int d) {
    int res = (d < 0);
    for(size_t i = 0; i < g[v].size(); i++)
        if(g[v][i] != p)
            res += dfs(g[v][i], v, d - 1);
    return res;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n, k;
    cin >> n >> k;
    for(int i = 0; i < n - 1; i++) {
        int v, u;
        cin >> v >> u;
        v--;
        u--;
        g[v].push_back(u);
        g[u].push_back(v);
    }
    int ans = MAXN;
    for(int i = 0; i < n; i++)
        ans = min(ans, dfs(i, -1, k / 2));
    for(int i = 0; i < n; i++)
        for(size_t j = 0; j < g[i].size(); j++)
            ans = min(ans, dfs(g[i][j], i, (k - 1) / 2) +
                      dfs(i, g[i][j], (k - 1) / 2));
    cout << ans << '\n';
    return 0;
}
