import math
N, M =map(int, input().split())
node_num = N
route_list  = [[0 for i in range(N)] for j in range(N)]

for i in range(M):
    l,r,c = map(int, input().split())
    for k in range(l,r):
      for j in range(k+1,r+1):

        if route_list[k-1][j-1] == 0:
          route_list[k-1][j-1] = c
          route_list[j-1][k-1] = c
        else:
          route_list[k-1][j-1] = min(route_list[k-1][j-1],c)
          route_list[j-1][k-1] = min(route_list[j-1][k-1],c)

unsearched_nodes = list(range(node_num)) 
distance = [float('inf')] * node_num 
previous_nodes = [-1] * node_num
distance[0] = 0

def get_target_min_index(min_index, distance, unsearched_nodes):
    start = 0
    while True:
        index = distance.index(min_index, start)
        found = index in unsearched_nodes
        if found:
            return index
        else:
            start = index + 1
while(len(unsearched_nodes) != 0): #未探索ノードがなくなるまで繰り返す
    # まず未探索ノードのうちdistanceが最小のものを選択する
    posible_min_distance =float('inf') # 最小のdistanceを見つけるための一時的なdistance。初期値は inf に設定。
    for node_index in unsearched_nodes: # 未探索のノードのループ
        if posible_min_distance > distance[node_index]: 
            posible_min_distance = distance[node_index] # より小さい値が見つかれば更新
    target_min_index = get_target_min_index(posible_min_distance, distance, unsearched_nodes) # 未探索ノードのうちで最小のindex番号を取得
    unsearched_nodes.remove(target_min_index) # ここで探索するので未探索リストから除去

    target_edge = route_list[target_min_index] # ターゲットになるノードからのびるエッジのリスト
    for index, route_dis in enumerate(target_edge):
        if route_dis != 0:
            if distance[index] > (distance[ target_min_index] + route_dis):
                distance[index] = distance[ target_min_index] + route_dis # 過去に設定されたdistanceよりも小さい場合はdistanceを更新
                previous_nodes[index] =  target_min_index #　ひとつ前に到達するノードのリストも更新
#print("-----経路-----")
previous_node = node_num - 1
"""
while previous_node != -1:
    if previous_node !=0:
        print(str(previous_node + 1) + " <- ", end='')
    else:
        print(str(previous_node + 1))
    previous_node = previous_nodes[previous_node]
"""
#print("-----距離-----")
if distance[node_num - 1] ==float('inf'):
  print(-1)
else:
  print(distance[node_num - 1])