func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 1e6 + 50;   vector<int> g[maxn];   int n, k;   int ans = 0;   int dfs(int u, int p) {     if (g[u].size() == 1) return 0;     vector<int> vt;     for (auto it : g[u]) {       if (it != p) {         vt.push_back(dfs(it, u) + 1);       }     }     sort(vt.begin(), vt.end());     while (int(vt.size()) >= 2) {       if (vt.back() + vt[int(vt.size()) - 2] <= k) break;       ++ans;       vt.pop_back();     }     return vt.back();   }   int main() {     ios::sync_with_stdio(false);     cin.tie();     cout.tie();     cin >> n >> k;     for (int i = 1; i < n; i++) {       int u, v;       cin >> u >> v;       g[u].push_back(v);       g[v].push_back(u);     }     for (int i = 1; i <= n; i++) {       if (int(g[i].size()) > 1) {         dfs(i, -1);         break;       }     }     cout << ans + 1 << endl;     return 0;   }   