#include<cstdio>
using namespace std;
const int MAXN = 100005;
int a[MAXN], b[MAXN], fa[MAXN];
long long ans[MAXN], s[MAXN];
inline int findset(int x){
	return fa[x]==x?x:fa[x]=findset(fa[x]);
}
int main(){
	int n, m;
	scanf("%d%d", &n, &m);
	for(int i=1; i<=m; i++){
		scanf("%d%d", a+i, b+i);
	}
	long long sum = 1LL*n*(n-1)/2;
	for(int i=1; i<=n; i++) fa[i]=i, s[i]=1LL;
	for(int i=m; i; i--){
		ans[i]=sum;
		int x = findset(a[i]);
		int y = findset(b[i]);
		if(x!=y){
			fa[y]=x;
			sum-=s[x]*s[y];
			s[x]+=s[y];
		}
	}
	for(int i=1; i<=m; i++) printf("%lld\n", ans[i]);
	return 0;
}