#include <bits/stdc++.h>
using namespace std;
const int N = 1000005;
int degree[N];
int n, m, u, v;
int main() {
  cin >> n >> m;
  for (int i = 0; i < m; i++) {
    scanf("%d %d", &u, &v);
    degree[u]++;
    degree[v]++;
  }
  long long sum = 0LL, ans = n * 1LL * (n - 1) * (n - 2) / 6;
  for (int i = 1; i <= n; i++) {
    sum += degree[i] * 1LL * (n - 1 - degree[i]);
  }
  cout << ans - sum / 2 << endl;
  return 0;
}

### Prompt

Construct a CPP code solution to the problem outlined:

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 <image> 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?

Input

The first line contains two space-separated integers n and m (1 ≤ n ≤ 106, 0 ≤ m ≤ 106) — 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 ai, bi (1 ≤ ai, bi ≤ n, ai ≠ bi), — 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.

Output

Print a single number — the total number of cycles of length 3 in Alice and Bob's graphs together.

Please, do not use the %lld specifier to read or write 64-bit integers in С++. It is advised to use the cin, cout streams or the %I64d specifier.

Examples

Input

5 5
1 2
1 3
2 3
2 4
3 4


Output

3


Input

5 3
1 2
2 3
1 3


Output

4

Note

In the first sample Alice has 2 triangles: (1, 2, 3) and (2, 3, 4). Bob's graph has only 1 triangle : (1, 4, 5). That's why the two graphs in total contain 3 triangles.

In the second sample Alice's graph has only one triangle: (1, 2, 3). Bob's graph has three triangles: (1, 4, 5), (2, 4, 5) and (3, 4, 5). In this case the answer to the problem is 4.

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
const int N = 1000005;
int degree[N];
int n, m, u, v;
int main() {
  cin >> n >> m;
  for (int i = 0; i < m; i++) {
    scanf("%d %d", &u, &v);
    degree[u]++;
    degree[v]++;
  }
  long long sum = 0LL, ans = n * 1LL * (n - 1) * (n - 2) / 6;
  for (int i = 1; i <= n; i++) {
    sum += degree[i] * 1LL * (n - 1 - degree[i]);
  }
  cout << ans - sum / 2 << endl;
  return 0;
}

```