#include <climits>
#include <cmath>
#include <iostream>
#include <queue>
#include <vector>
using namespace std;


struct Edge {
    int v;
    int w;
};


// 传入邻接表
void MainFunction(vector<vector<Edge>>& map) {
    int vNum = map.size();

    // 构造DAG判环
    vector<int> indeg(vNum);   // 入度列表
    for (vector<Edge>& es : map) {
        for (Edge& e : es) {
            indeg[e.v]++;
        }
    }

    vector<int> DAGser;  // DAG序列
    queue<int> q;
    for (int i = 0; i < vNum; i++) {
        if (indeg[i] == 0) q.push(i);
    }

    while (!q.empty()) {
        int u = q.front();
        DAGser.push_back(u);
        q.pop();
        for (Edge& e : map[u]) {
            if (--indeg[e.v] == 0) q.push(e.v);
        }
    }

    // 判环
    if (DAGser.size() != vNum) {
        cout << "-1";
        return ;
    }

    // 动态规划
    vector<int> dpW(vNum);
    vector<int> dpL(vNum);

    // 设置初值
    for (int i = 0; i < vNum; i++) {
        if (indeg[i] == 0) {
            dpW[i] = 0;
            dpL[i] = 1;
            continue;
        }
        dpW[i] = -(INT_MAX / 2);
        dpL[i] = 0;
    }

    // 状态转移
    for (int x : DAGser) {
        vector<Edge> es = map[x];
        for (Edge e : es) {
            int candpW = dpW[x] + e.w;
            int candpL = dpL[x] + 1;
            if (candpW > dpW[e.v]) {
                dpW[e.v] = candpW;
                dpL[e.v] = candpL;
            }
            if (candpW == dpW[e.v] && candpL > dpL[e.v]) dpL[e.v] = candpL;
        }
    }

    // 输出
    int maxIndex = 0;
    for (int i = 0; i < vNum; i++) {
        if (dpW[i] > dpW[maxIndex]) maxIndex = i;
    }

    if (dpW[maxIndex] == 0) {
        cout << 0 << " " << 0;
        return ;
    }
    cout << dpW[maxIndex] << " " << dpL[maxIndex];
    return ;

}


int main() {
    int es;
    cin >> es;

    vector<vector<Edge>> maxMap(1000);
    for (int i = 0; i < es ; ++i) {
        int v;
        cin >> v;
        Edge e;
        cin >> e.v;
        cin >> e.w;
        maxMap[v].push_back(e);
    }

    MainFunction(maxMap);

    return 0;
}