#include <bits/stdc++.h>
#define FOR(i,a,b) for(int i=(a);i<(b);i++)
#define REP(i,a) FOR(i,0,a)
	
using namespace std;

const int MAX_N=400,MAX_M=1e5;

int N,M,x[MAX_M],y[MAX_M];

bool flg[MAX_N];
bool flg2[MAX_N][MAX_N];

int main(){
	cin>>N>>M;
	REP(i,M){
		cin>>x[i]>>y[i];
		x[i]--;
		y[i]--;
	}
	REP(i,N){
		flg2[i][i]=true;
		REP(j,M){
			bool &f1=flg2[i][x[M-1-j]],&f2=flg2[i][y[M-1-j]];
			if (f1){
				if (f2){
					flg[i]=true;
					break;
				}else{
					f2=true;
				}
			}else{
				if (f2){
					f1=true;
				}
			}
		}
	}
	int ans=0;
	REP(i,N){
		if (flg[i]){
			continue;
		}
		FOR(j,i+1,N){
			if (flg[j]){
				continue;
			}
			bool f=false;
			REP(k,N){
				if (flg2[i][k] && flg2[j][k]){
					f=true;
					break;
				}
			}
			if (!f){
				ans++;
			}
		}
	}
	cout<<ans<<endl;
	return 0;
}