#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<stdio.h>
#include<algorithm>
using namespace std;

typedef long long ll;
int p[100010],n,m;
int A[100010],B[100010];
ll ans[100010],size[100100];

int find_set(int x){
	if(x==p[x])
		return x;
	return p[x]=find_set(p[x]);
}

int main(){
	cin>>n>>m;
	ans[m]=(ll)n*(n-1)/2;
	for(int i=1;i<=n;i++)
		p[i]=i,size[i]=1;
	for(int i=1;i<=m;i++)
		cin>>A[i]>>B[i];
	for(int i=m;i>=1;i--){
		int pa=find_set(A[i]);
		int pb=find_set(B[i]);
		if(pa==pb)
			ans[i-1]=ans[i];
		else{
			ans[i-1]=ans[i]-size[pa]*size[pb];
			size[pa]+=size[pb];
			p[pb]=pa;
		}
	}
	for(int i=1;i<=m;i++)
		cout<<ans[i]<<endl;
	return 0;
}