#include <bits/stdc++.h>
using namespace std;
pair<int, int> f[151][2];
int n, p, ans = INT_MAX, s[151], fa[151];
bool b[151];
vector<int> q[151];
inline int dfs(int p) {
s[p] = 1;
for (auto y : q[p])
s[p] += dfs(y);
return s[p];
}
inline void processing(int p, int cnt, int sum) {
bool ok = true;
int u = p;
while (fa[u]) {
if (b[fa[u]]) {
ok = false;
break;
}
u = fa[u];
}
if (!ok && b[p])
return;
if (sum > p)
return;
if (sum == p) {
printf("%d %d\n", ans, sum);
ans = min(ans, cnt);
return;
}
for (auto y : q[p]) {
b[y] = 0;
processing(y, cnt, sum);
b[y] = 1;
int u = y, v = s[y];
s[y] = 0;
while (fa[u]) {
s[fa[u]] -= s[y];
u = fa[u];
}
processing(y, cnt + 1, sum + v);
u = y, s[y] = v;
while (fa[u]) {
s[fa[u]] += s[y];
u = fa[u];
}
}
}
int main() {
scanf("%d%d", &n, &p);
for (int i = 1; i < n; i++) {
int u, v;
scanf("%d%d", &u, &v);
q[u].push_back(v);
fa[v] = u;
}
dfs(1);
processing(1, 0, 0);
printf("%d\n", ans);
return 0;
}