import heapq def iwaijkstra(n,m,x,l,r,c): que = [] heapq.heappush(que, (0, 1)) dist = [10 ** 18] * n dist[0] = 0 vis = [False] * n ans = 0 while len(que) > 0: a,b = que[0] ans += 1 for i in range(n): if dist[i] < a: vis[i] = True if vis[b-1]: continue for i in range(m): if x[i] == b: for j in range(l[i] - 1, r[i]): if not vis[j]: dist[j] = min(dist[j], a + c[i]) heapq.heappush(que, (a + c[i], j + 1)) b = heapq.heappop(que) print(ans) N,M = map(int, input().split()) X,L,R,C = ([0]*M,[0]*M,[0]*M,[0]*M) for i in range(M): X[i],L[i],R[i],C[i] = map(int,input().split()) iwaijkstra(N,M,X,L,R,C)