#include <bits/stdc++.h>
using namespace std;
void dfs(long long int node, long long int arr[101][101],
         vector<long long int> &dis_vec, long long int &max_ans,
         long long int &n) {
  int flag = 0;
  for (int i = 1; i < n; i++) {
    if (dis_vec[i] == -1 && arr[node][i] > 0) {
      flag = 1;
      dis_vec[i] = dis_vec[node] + arr[node][i];
      dfs(i, arr, dis_vec, max_ans, n);
    }
  }
  if (flag == 0) {
    if (dis_vec[node] > max_ans) {
      max_ans = dis_vec[node];
    }
  }
}
int main() {
  long long int n;
  cin >> n;
  long long int arr[101][101];
  vector<long long int> dis_vec(101, -1);
  for (int i = 0; i < 101; i++) {
    for (int j = 0; j < 101; j++) {
      arr[i][j] = 0;
    }
  }
  for (int i = 0; i < n - 1; i++) {
    long long int a, b, dis;
    cin >> a >> b >> dis;
    arr[a][b] = dis;
    arr[b][a] = dis;
  }
  long long int max_ans = 0;
  dis_vec[0] = 0;
  dfs(0, arr, dis_vec, max_ans, n);
  cout << max_ans << endl;
  return 0;
}
