#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=100005;

int n,m,ans;
int a[N],b[N];
int cnt[N];

struct DSU
{
	int fa[N],sz[N];
	void init()
	{
		for(int i=1;i<=n;i++) fa[i]=i;
		for(int i=1;i<=n;i++) sz[i]=1;
	}
	int find(int x)
	{
		return fa[x]=(fa[x]==x?x:find(fa[x]));
	}
	void unite(int x,int y)
	{
		x=find(x); y=find(y);
		if(x==y) return;
		ans-=sz[x]*sz[y];
		sz[y]+=sz[x];
		fa[x]=y;
	}
}dsu;

signed main()
{
	
	cin>>n>>m;
	for(int i=1;i<=m;i++)
		cin>>a[i]>>b[i];
	ans=n*(n-1)/2;
	dsu.init();
	for(int i=m;i>=1;i--)
	{
		cnt[i]=ans;
		dsu.unite(a[i],b[i]);
	}
	for(int i=1;i<=m;i++)
		cout<<cnt[i]<<'\n';
	
	return 0;
}