from collections import deque n,m = map(int,input().split()) e = [[] for i in range(n)] for i in range(m): s,t,d = map(int,input().split()) s -= 1 t -= 1 e[s].append((t,d)) e[t].append((s,d)) inf = 10**20 def search(M): dis = [inf]*n dis[0] = 0 q = deque([0]) while q: now = q.popleft() for nex,d in e[now]: if d >= M and dis[nex] > dis[now]+1: dis[nex] = dis[now]+1 q.append(nex) return dis[-1] l = 0 r = 10**9+5 while r > l + 1: m = (r+l)//2 if search(m) == inf: r = m else: l = m print(l,search(l))