func_code_string: #include <bits/stdc++.h>   using namespace std;   int N, K, ans;   vector<int> ady[1000005];   set<int> dfs(int x, int p) {     set<int> s;     if (ady[x].size() == 1) {       s.insert(0);       return s;     }     for (auto v : ady[x]) {       if (v == p) continue;       set<int> tmp = dfs(v, x);       for (auto aux : tmp) {         aux++;         if (aux > K)           ans++;         else if (s.find(aux) != s.end() && aux + aux > K)           ans++;         else           s.insert(aux);       }     }     auto it = s.begin();     while (s.begin() != s.end()) {       auto it2 = it;       it2++;       if (it2 == s.end()) break;       if (*it + *it2 <= K) s.erase(it);       it = it2;     }     return s;   }   int main() {     cin.tie(0);     ios_base::sync_with_stdio(0);     cin >> N >> K;     for (int i = 1; i < N; i++) {       int u, v;       cin >> u >> v;       ady[u].push_back(v);       ady[v].push_back(u);     }     int root = 1;     while (ady[root].size() == 1) root++;     ans += dfs(root, 0).size();     cout << ans;     return 0;   }   