Alice and Bob don't play games anymore. Now they study properties of all sorts of graphs together. Alice invented the following task: she takes a complete undirected graph with *n* vertices, chooses some *m* edges and keeps them. Bob gets the <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/c71c71c3cae00d164d378e95345e36e760a9a0dc.png" style="max-width: 100.0%;max-height: 100.0%;"/> remaining edges.

Alice and Bob are fond of "triangles" in graphs, that is, cycles of length 3. That's why they wonder: what total number of triangles is there in the two graphs formed by Alice and Bob's edges, correspondingly?
The first line contains two space-separated integers *n* and *m* (1 ≤ *n* ≤ 10<sup class="upper-index">6</sup>, 0 ≤ *m* ≤ 10<sup class="upper-index">6</sup>) — the number of vertices in the initial complete graph and the number of edges in Alice's graph, correspondingly. Then *m* lines follow: the *i*-th line contains two space-separated integers *a*<sub class="lower-index">*i*</sub>, *b*<sub class="lower-index">*i*</sub> (1 ≤ *a*<sub class="lower-index">*i*</sub>, *b*<sub class="lower-index">*i*</sub> ≤ *n*, *a*<sub class="lower-index">*i*</sub> ≠ *b*<sub class="lower-index">*i*</sub>), — the numbers of the two vertices connected by the *i*-th edge in Alice's graph. It is guaranteed that Alice's graph contains no multiple edges and self-loops. It is guaranteed that the initial complete graph also contains no multiple edges and self-loops.

Consider the graph vertices to be indexed in some way from 1 to *n*.
n, m = map(int, input().split())

deg = [0] * (n + 1)

for i in range(m):
  a, b = map(int, input().split())
  deg[a] += 1
  deg[b] += 1

ans = n * (n - 1) * (n - 2) // 6

k = 0
for i in range(1, n + 1):
  k += deg[i] * (n - 1 - deg[i])

k = k // 2

print(ans - k)

