#include <stdio.h>
#define oo 999
typedef struct{
int n;
int A[100][100];
}Graph;
void init_graph(Graph *G, int n){
G->n = n;
for(int u=1;u<=G->n;u++){
for(int v=1;v<=G->n;v++){
G->A[u][v] = 0;
}
}
}
void add_edge(Graph *G, int u, int v, int w){
G->A[u][v] = w;
}
int mark[100];
int pi[100];
int p[100];
int cnt[100];
void MooreDijkstra(Graph *G, int s){
int u,v,it;
for(u=1;u<=G->n;u++){
pi[u] = oo;
mark[u] = 0;
cnt[u] = 0;
}
pi[s] = 0;
p[s] = 1;
cnt[s] = 1;
for(it=1;it<G->n;it++){
int j, min_pi=oo;
for(j=1;j<=G->n;j++){
if(mark[j]==0 && pi[j] < min_pi){
min_pi = pi[j];
u = j;
}
}
mark[u] = 1;
for(v=1;v<=G->n;v++){
if(G->A[u][v] != 0 && mark[v]==0){
if(pi[u] + G->A[u][v] < pi[v]){
pi[v] = pi[u] + G->A[u][v];
cnt[v]=cnt[u];
p[v] = u;
}
else if(pi[u] + G->A[u][v] == pi[v]){
cnt[v] += cnt[u];
}
}
}
}
}
int main(){
Graph G;
int n, m, u, v, w, e;
init_graph(&G, n);
for (e = 0; e < m; e++) {
scanf("%d%d%d", &u
, &v
, &w
); add_edge(&G, u, v, w);
}
MooreDijkstra(&G,1);
if(pi
[n
] == oo
) printf("-1 %d", cnt
[n
]); else printf("%d %d", pi
[n
], cnt
[n
]); }
I2luY2x1ZGUgPHN0ZGlvLmg+CiNkZWZpbmUgb28gOTk5CnR5cGVkZWYgc3RydWN0ewoJaW50IG47CglpbnQgQVsxMDBdWzEwMF07Cn1HcmFwaDsKdm9pZCBpbml0X2dyYXBoKEdyYXBoICpHLCBpbnQgbil7CglHLT5uID0gbjsKCWZvcihpbnQgdT0xO3U8PUctPm47dSsrKXsKCQlmb3IoaW50IHY9MTt2PD1HLT5uO3YrKyl7CgkJCUctPkFbdV1bdl0gPSAwOwoJCX0KCX0KfQp2b2lkIGFkZF9lZGdlKEdyYXBoICpHLCBpbnQgdSwgaW50IHYsIGludCB3KXsKCUctPkFbdV1bdl0gPSB3Owp9CmludCBtYXJrWzEwMF07CmludCBwaVsxMDBdOwppbnQgcFsxMDBdOwppbnQgY250WzEwMF07CnZvaWQgTW9vcmVEaWprc3RyYShHcmFwaCAqRywgaW50IHMpewoJaW50IHUsdixpdDsKCWZvcih1PTE7dTw9Ry0+bjt1KyspewoJCXBpW3VdID0gb287CgkJbWFya1t1XSA9IDA7CgkJY250W3VdID0gMDsKCX0KCXBpW3NdID0gMDsKCXBbc10gPSAxOwoJY250W3NdID0gMTsKCWZvcihpdD0xO2l0PEctPm47aXQrKyl7CgkJaW50IGosIG1pbl9waT1vbzsKCQlmb3Ioaj0xO2o8PUctPm47aisrKXsKCQkJaWYobWFya1tqXT09MCAmJiBwaVtqXSA8IG1pbl9waSl7CgkJCQltaW5fcGkgPSBwaVtqXTsKCQkJCXUgPSBqOwoJCQl9CgkJfQoJCW1hcmtbdV0gPSAxOwoJCQoJCWZvcih2PTE7djw9Ry0+bjt2KyspewoJCQlpZihHLT5BW3VdW3ZdICE9IDAgJiYgbWFya1t2XT09MCl7CgkJCQlpZihwaVt1XSArIEctPkFbdV1bdl0gPCBwaVt2XSl7CgkJCQkJcGlbdl0gPSBwaVt1XSArIEctPkFbdV1bdl07CgkJCQkJY250W3ZdPWNudFt1XTsKCQkJCQlwW3ZdID0gdTsKCQkJCX0KCQkJCWVsc2UgaWYocGlbdV0gKyBHLT5BW3VdW3ZdID09IHBpW3ZdKXsKCQkJCQljbnRbdl0gKz0gY250W3VdOwoJCQkJfQoJCQl9CgkJfQoJfQp9CmludCBtYWluKCl7CglHcmFwaCBHOwoJaW50IG4sIG0sIHUsIHYsIHcsIGU7CglzY2FuZigiJWQlZCIsICZuLCAmbSk7Cglpbml0X2dyYXBoKCZHLCBuKTsKCQoJZm9yIChlID0gMDsgZSA8IG07IGUrKykgewoJCXNjYW5mKCIlZCVkJWQiLCAmdSwgJnYsICZ3KTsKCQlhZGRfZWRnZSgmRywgdSwgdiwgdyk7Cgl9CglNb29yZURpamtzdHJhKCZHLDEpOwoJaWYocGlbbl0gPT0gb28pIHByaW50ZigiLTEgJWQiLCBjbnRbbl0pOwoJZWxzZSBwcmludGYoIiVkICVkIiwgcGlbbl0sIGNudFtuXSk7Cn0=