import sys readline=sys.stdin.readline import heapq N,M=map(int,readline().split()) C=[[0]*N for h in range(N)] for m in range(M): h,w,c=map(int,readline().split()) h-=1;w-=1 C[h][w]=c inf=1<<60 dist=[[[inf]*N for h in range(N)] for b in range(2)] dist[0][0][0]=0 queue=[(0,0,0,0)] while queue: dx,bx,hx,wx=heapq.heappop(queue) if dist[bx][hx][wx]dx+C[hy][wy]+1: dist[bx][hy][wy]=dx+C[hy][wy]+1 heapq.heappush(queue,(dist[bx][hy][wy],bx,hy,wy)) if bx==0: if dist[1][hy][wy]>dx+1: dist[1][hy][wy]=dx+1 heapq.heappush(queue,(dist[1][hy][wy],1,hy,wy)) ans=dist[1][N-1][N-1] print(ans)