#include <bits/stdc++.h>
#define forin(i, a, b) for (int i = a; i <= b; i++)
#define forde(i, a, b) for (int i = a; i >= b; i--)
#define forv(a, b) for (auto& a : b)
#define fi first
#define se second
#define ii pair<int, int>
#define endl "\n"
using namespace std;
const int N = 5010;
int dp[N][N], res, temp[N];
vector<int> ke[N];
int n, s[N];
long long fo = 0;
void dfs(int u, int par) {
int white = 0;
if (ke[u].size() == 1) s[u]++;
forv(v, ke[u]) if (v != par) {
dfs(v, u);
s[u] += s[v];
int tmp = 0;
forin(j, 1, s[v]) tmp = max(tmp, j + dp[v][j]);
white += tmp;
}
for (int j = 1; j <= s[u]; j++) dp[u][j] = -1e9;
forv(v, ke[u]) if (v != par) {
for (int k = s[u]; k > 0; k--) temp[k] = -1e9;
temp[0] = 0;
for (int j = 1; j <= s[v]; j++) {
for (int k = s[u]; k >= j; k--) {
++fo;
temp[k] = max(temp[k], dp[u][k - j] + dp[v][j] + j * (k - j));
}
}
for (int k = 1; k <= s[u]; k++) dp[u][k] = max(dp[u][k], temp[k]);
}
dp[u][1] = max(dp[u][1], white);
for (int j = 1; j <= s[u]; j++) res = max(res, dp[u][j]);
}
void solve() {
srand(time(NULL));
// cin >> n;
n = 5000;
res = 0;
forin(i, 2, 2) {
int x = 1, y = i;
ke[x].push_back(y);
ke[y].push_back(x);
}
forin(i, 3, 5000) {
int x = i, y = 2;
ke[x].push_back(y);
ke[y].push_back(x);
}
// forin(i, 1, n - 1) {
// int x, y;
// cin >> x >> y;
// ke[x].push_back(y);
// ke[y].push_back(x);
// }
dfs(1, 0);
cout << res;
// cerr << fo << endl;
// fo = 0;
for (int i = 1; i <= n; i++) ke[i].clear(), s[i] = 0;
}
int main() {
#define task "a"
cin.tie(0)->sync_with_stdio(0);
if (fopen("task.inp", "r")) {
freopen("task.inp", "r", stdin);
freopen("task.out", "w", stdout);
}
if (fopen(task ".inp", "r")) {
freopen(task ".inp", "r", stdin);
freopen(task ".out", "w", stdout);
}
int t = 10;
// cin >> t;
while (t--) {
solve();
cout << endl;
}
cout << fo;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgZm9yaW4oaSwgYSwgYikgZm9yIChpbnQgaSA9IGE7IGkgPD0gYjsgaSsrKQojZGVmaW5lIGZvcmRlKGksIGEsIGIpIGZvciAoaW50IGkgPSBhOyBpID49IGI7IGktLSkKI2RlZmluZSBmb3J2KGEsIGIpIGZvciAoYXV0byYgYSA6IGIpCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBpaSBwYWlyPGludCwgaW50PgojZGVmaW5lIGVuZGwgIlxuIgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBpbnQgTiA9IDUwMTA7CmludCBkcFtOXVtOXSwgcmVzLCB0ZW1wW05dOwp2ZWN0b3I8aW50PiBrZVtOXTsKaW50IG4sIHNbTl07CmxvbmcgbG9uZyBmbyA9IDA7CnZvaWQgZGZzKGludCB1LCBpbnQgcGFyKSB7CiAgaW50IHdoaXRlID0gMDsKICBpZiAoa2VbdV0uc2l6ZSgpID09IDEpIHNbdV0rKzsKICBmb3J2KHYsIGtlW3VdKSBpZiAodiAhPSBwYXIpIHsKICAgIGRmcyh2LCB1KTsKICAgIHNbdV0gKz0gc1t2XTsKICAgIGludCB0bXAgPSAwOwogICAgZm9yaW4oaiwgMSwgc1t2XSkgdG1wID0gbWF4KHRtcCwgaiArIGRwW3ZdW2pdKTsKICAgIHdoaXRlICs9IHRtcDsKICB9CiAgZm9yIChpbnQgaiA9IDE7IGogPD0gc1t1XTsgaisrKSBkcFt1XVtqXSA9IC0xZTk7CiAgZm9ydih2LCBrZVt1XSkgaWYgKHYgIT0gcGFyKSB7CiAgICBmb3IgKGludCBrID0gc1t1XTsgayA+IDA7IGstLSkgdGVtcFtrXSA9IC0xZTk7CiAgICB0ZW1wWzBdID0gMDsKICAgIGZvciAoaW50IGogPSAxOyBqIDw9IHNbdl07IGorKykgewogICAgICBmb3IgKGludCBrID0gc1t1XTsgayA+PSBqOyBrLS0pIHsKICAgICAgICArK2ZvOwogICAgICAgIHRlbXBba10gPSBtYXgodGVtcFtrXSwgZHBbdV1bayAtIGpdICsgZHBbdl1bal0gKyBqICogKGsgLSBqKSk7CiAgICAgIH0KICAgIH0KICAgIGZvciAoaW50IGsgPSAxOyBrIDw9IHNbdV07IGsrKykgZHBbdV1ba10gPSBtYXgoZHBbdV1ba10sIHRlbXBba10pOwogIH0KICBkcFt1XVsxXSA9IG1heChkcFt1XVsxXSwgd2hpdGUpOwogIGZvciAoaW50IGogPSAxOyBqIDw9IHNbdV07IGorKykgcmVzID0gbWF4KHJlcywgZHBbdV1bal0pOwp9CnZvaWQgc29sdmUoKSB7CiAgc3JhbmQodGltZShOVUxMKSk7CiAgLy8gY2luID4+IG47CiAgbiA9IDUwMDA7CiAgcmVzID0gMDsKICBmb3JpbihpLCAyLCAyKSB7CiAgICBpbnQgeCA9IDEsIHkgPSBpOwogICAga2VbeF0ucHVzaF9iYWNrKHkpOwogICAga2VbeV0ucHVzaF9iYWNrKHgpOwogIH0KICBmb3JpbihpLCAzLCA1MDAwKSB7CiAgICBpbnQgeCA9IGksIHkgPSAyOwogICAga2VbeF0ucHVzaF9iYWNrKHkpOwogICAga2VbeV0ucHVzaF9iYWNrKHgpOwogIH0KICAvLyBmb3JpbihpLCAxLCBuIC0gMSkgewogIC8vICAgaW50IHgsIHk7CiAgLy8gICBjaW4gPj4geCA+PiB5OwogIC8vICAga2VbeF0ucHVzaF9iYWNrKHkpOwogIC8vICAga2VbeV0ucHVzaF9iYWNrKHgpOwogIC8vIH0KICBkZnMoMSwgMCk7CiAgY291dCA8PCByZXM7CiAgLy8gY2VyciA8PCBmbyA8PCBlbmRsOwogIC8vIGZvID0gMDsKICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIGtlW2ldLmNsZWFyKCksIHNbaV0gPSAwOwp9CmludCBtYWluKCkgewojZGVmaW5lIHRhc2sgImEiCiAgY2luLnRpZSgwKS0+c3luY193aXRoX3N0ZGlvKDApOwogIGlmIChmb3BlbigidGFzay5pbnAiLCAiciIpKSB7CiAgICBmcmVvcGVuKCJ0YXNrLmlucCIsICJyIiwgc3RkaW4pOwogICAgZnJlb3BlbigidGFzay5vdXQiLCAidyIsIHN0ZG91dCk7CiAgfQogIGlmIChmb3Blbih0YXNrICIuaW5wIiwgInIiKSkgewogICAgZnJlb3Blbih0YXNrICIuaW5wIiwgInIiLCBzdGRpbik7CiAgICBmcmVvcGVuKHRhc2sgIi5vdXQiLCAidyIsIHN0ZG91dCk7CiAgfQogIGludCB0ID0gMTA7CiAgLy8gY2luID4+IHQ7CiAgd2hpbGUgKHQtLSkgewogICAgc29sdmUoKTsKICAgIGNvdXQgPDwgZW5kbDsKICB9CiAgY291dCA8PCBmbzsKfQo=