#include<bits/stdc++.h>
using namespace std;

#define ll long long
#define pb push_back

const int maxn = 4e2 + 20;
const int maxm = 1e5 + 20;

bitset<maxn> adj[maxn] , tmp;

int x[maxm] , y[maxm];

bool has[maxn];

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);

	int n , m;
	cin >> n >> m;

	for(int i = 0; i < m; i++)
	{
		cin >> x[i] >> y[i];
		x[i]-- , y[i]--;
	}

	memset(has , 1 , sizeof has);

	for(int i = 0; i < n; i++)
		for(int j = m - 1; j >= 0; j--)
		{
			adj[i][i] = 1;
			if(adj[i][x[j]] && adj[i][y[j]])
			{
				has[i] = 0;
				break;
			}

			adj[i][x[j]] = adj[i][y[j]] = adj[i][x[j]] | adj[i][y[j]];
		}

	int res = 0;

	for(int i = 0; i < n; i++)
		for(int j = i + 1; j < n; j++)
			if(has[i] && has[j])
			{
				tmp = adj[i]&adj[j];

				res += !tmp.any();
			}

	cout << res << endl;
}



