import sys input = lambda : sys.stdin.readline().rstrip() sys.setrecursionlimit(max(1000, 10**9)) write = lambda x: sys.stdout.write(x+"\n") # グラフの読み込み n,m = map(int, input().split()) import networkx as nx g = nx.MultiDiGraph() # 必要に応じてMultiDiGraphにする g.add_node(0, demand=-2) for i in range(1,n-1): g.add_node(i) g.add_node(n-1, demand=2) for _ in range(m): u,v,c,d = map(int, input().split()) u -= 1 v -= 1 g.add_edge(u,v,capacity=1, weight=c) g.add_edge(u,v,capacity=1, weight=d) val, d = nx.network_simplex(g) # d[u][v]: (u,v)の流量 ans = val print(ans)