#include <bits/stdc++.h>
using namespace std;
#define faster ios_base::sync_with_stdio(false); cin.tie(NULL)
#define Bit(mask , i) ((mask >> i) & 1)
#define fi first
#define se second
#define _LOG2(nl) 31 - __builtin_clz(nl)
#define c_bit(nl) __builtin_popcount(nl)
#define ii pair<long long , int>
#define lll pair<long long , pair<long long , long long>>
#define lii pair<long long , pair<long long , int>>
#define iii pair<int , pair<int , int>>
#define iiii pair<pair<int , int> , pair<int , int>>
#define llll pair<pair<__int128 , __int128> , pair<__int128 , __int128>>
#define li pair<long long , int>
#define db long double
#define onBit(mask , i) (mask | (1 << i))
#define offBit(mask , i) (mask & (~(1 << i)))
const long long INF = 1e16;
const int N = 3e5 + 7;
int n , m;
vector<int> a[N] , adj[N];
int col[N] , cnt[N] , topo[N] , p = 0 , c[N] , par[N];
struct gv{
int val , id;
};
gv b[N];
bool cmp(gv x , gv y){
return x.val > y.val;
}
void inp(){
cin >> n >> m;
for (int i = 1 ; i <= n + 1 ; ++i){
par[i] = i;
}
for (int i = 1 ; i < n ; ++i){
int u , v;
cin >> u >> v;
a[u].push_back(v);
adj[v].push_back(u);
++c[v];
}
}
int find_par(int u){
if (u == par[u]) return u;
return par[u] = find_par(par[u]);
}
void bfs(){
queue<int> q;
for (int i = 1 ; i <= n ; ++i) if (c[i] == 0){
q.push(i);
++p;
topo[p] = i;
}
while (q.size()){
int u = q.front();
q.pop();
for (int v : a[u]){
--c[v];
if (c[v] == 0){
q.push(v);
++p;
topo[p] = v;
}
}
}
}
void solve(){
bfs();
for (int i = p ; i >= 1 ; --i){
int u = topo[i];
int depth = 1;
for (int v : a[u]) depth = max(depth , b[v].val + 1);
b[u].val = depth;
b[u].id = u;
}
sort(b + 1 , b + n + 1 , cmp);
int res = 0;
for (int i = 1 ; i <= p ; ++i){
int u = b[i].id;
int _max = 0;
for (int v : adj[u]) _max = max(_max , col[v]);
int need = _max + 1;
int color = find_par(need);
col[u] = color;
res = max(res , color);
cnt[color]++;
if (cnt[color] == m)
par[color] = find_par(color + 1);
}
cout << res;
}
int main(){
faster;
inp();
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgZmFzdGVyIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKE5VTEwpCiNkZWZpbmUgQml0KG1hc2sgLCBpKSAoKG1hc2sgPj4gaSkgJiAxKQojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgX0xPRzIobmwpIDMxIC0gX19idWlsdGluX2NseihubCkKI2RlZmluZSBjX2JpdChubCkgX19idWlsdGluX3BvcGNvdW50KG5sKQojZGVmaW5lIGlpIHBhaXI8bG9uZyBsb25nICwgaW50PgojZGVmaW5lIGxsbCBwYWlyPGxvbmcgbG9uZyAsIHBhaXI8bG9uZyBsb25nICwgbG9uZyBsb25nPj4KI2RlZmluZSBsaWkgcGFpcjxsb25nIGxvbmcgLCBwYWlyPGxvbmcgbG9uZyAsIGludD4+CiNkZWZpbmUgaWlpIHBhaXI8aW50ICwgcGFpcjxpbnQgLCBpbnQ+PgojZGVmaW5lIGlpaWkgcGFpcjxwYWlyPGludCAsIGludD4gLCBwYWlyPGludCAsIGludD4+CiNkZWZpbmUgbGxsbCBwYWlyPHBhaXI8X19pbnQxMjggLCBfX2ludDEyOD4gLCBwYWlyPF9faW50MTI4ICwgX19pbnQxMjg+PgojZGVmaW5lIGxpIHBhaXI8bG9uZyBsb25nICwgaW50PgojZGVmaW5lIGRiIGxvbmcgZG91YmxlCiNkZWZpbmUgb25CaXQobWFzayAsIGkpIChtYXNrIHwgKDEgPDwgaSkpCiNkZWZpbmUgb2ZmQml0KG1hc2sgLCBpKSAobWFzayAmICh+KDEgPDwgaSkpKQoKY29uc3QgbG9uZyBsb25nIElORiA9IDFlMTY7CmNvbnN0IGludCBOID0gM2U1ICsgNzsKaW50IG4gLCBtOwp2ZWN0b3I8aW50PiBhW05dICwgYWRqW05dOwppbnQgY29sW05dICwgY250W05dICwgdG9wb1tOXSAsIHAgPSAwICwgY1tOXSAsIHBhcltOXTsKCnN0cnVjdCBndnsKICAgIGludCB2YWwgLCBpZDsKfTsKCmd2IGJbTl07Cgpib29sIGNtcChndiB4ICwgZ3YgeSl7CiAgICByZXR1cm4geC52YWwgPiB5LnZhbDsKfQoKdm9pZCBpbnAoKXsKICAgIGNpbiA+PiBuID4+IG07CiAgICBmb3IgKGludCBpID0gMSA7IGkgPD0gbiArIDEgOyArK2kpewogICAgICAgIHBhcltpXSA9IGk7CiAgICB9CiAgICBmb3IgKGludCBpID0gMSA7IGkgPCBuIDsgKytpKXsKICAgICAgICBpbnQgdSAsIHY7CiAgICAgICAgY2luID4+IHUgPj4gdjsKICAgICAgICBhW3VdLnB1c2hfYmFjayh2KTsKICAgICAgICBhZGpbdl0ucHVzaF9iYWNrKHUpOwogICAgICAgICsrY1t2XTsKICAgIH0KfQoKaW50IGZpbmRfcGFyKGludCB1KXsKICAgIGlmICh1ID09IHBhclt1XSkgcmV0dXJuIHU7CiAgICByZXR1cm4gcGFyW3VdID0gZmluZF9wYXIocGFyW3VdKTsKfQoKdm9pZCBiZnMoKXsKICAgIHF1ZXVlPGludD4gcTsKICAgIGZvciAoaW50IGkgPSAxIDsgaSA8PSBuIDsgKytpKSBpZiAoY1tpXSA9PSAwKXsKICAgICAgICBxLnB1c2goaSk7CiAgICAgICAgKytwOwogICAgICAgIHRvcG9bcF0gPSBpOwogICAgfQoKICAgIHdoaWxlIChxLnNpemUoKSl7CiAgICAgICAgaW50IHUgPSBxLmZyb250KCk7CiAgICAgICAgcS5wb3AoKTsKCiAgICAgICAgZm9yIChpbnQgdiA6IGFbdV0pewogICAgICAgICAgICAtLWNbdl07CiAgICAgICAgICAgIGlmIChjW3ZdID09IDApewogICAgICAgICAgICAgICAgcS5wdXNoKHYpOwogICAgICAgICAgICAgICAgKytwOwogICAgICAgICAgICAgICAgdG9wb1twXSA9IHY7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCnZvaWQgc29sdmUoKXsKICAgIGJmcygpOwogICAgZm9yIChpbnQgaSA9IHAgOyBpID49IDEgOyAtLWkpewogICAgICAgIGludCB1ID0gdG9wb1tpXTsKCiAgICAgICAgaW50IGRlcHRoID0gMTsKICAgICAgICBmb3IgKGludCB2IDogYVt1XSkgZGVwdGggPSBtYXgoZGVwdGggLCBiW3ZdLnZhbCArIDEpOwogICAgICAgIGJbdV0udmFsID0gZGVwdGg7CiAgICAgICAgYlt1XS5pZCA9IHU7CiAgICB9CiAgICBzb3J0KGIgKyAxICwgYiArIG4gKyAxICwgY21wKTsKICAgIGludCByZXMgPSAwOwogICAgZm9yIChpbnQgaSA9IDEgOyBpIDw9IHAgOyArK2kpewogICAgICAgIGludCB1ID0gYltpXS5pZDsKICAgICAgICBpbnQgX21heCA9IDA7CiAgICAgICAgZm9yIChpbnQgdiA6IGFkalt1XSkgX21heCA9IG1heChfbWF4ICwgY29sW3ZdKTsKICAgICAgICBpbnQgbmVlZCA9IF9tYXggKyAxOwogICAgICAgIGludCBjb2xvciA9IGZpbmRfcGFyKG5lZWQpOwoKICAgICAgICBjb2xbdV0gPSBjb2xvcjsKICAgICAgICByZXMgPSBtYXgocmVzICwgY29sb3IpOwogICAgICAgIGNudFtjb2xvcl0rKzsKCiAgICAgICAgaWYgKGNudFtjb2xvcl0gPT0gbSkKICAgICAgICBwYXJbY29sb3JdID0gZmluZF9wYXIoY29sb3IgKyAxKTsKICAgIH0KICAgIGNvdXQgPDwgcmVzOwp9CgppbnQgbWFpbigpewogICAgZmFzdGVyOwogICAgaW5wKCk7CiAgICBzb2x2ZSgpOwogICAgcmV0dXJuIDA7Cn0K