#include<bits/stdc++.h>
using namespace std;
int a[100007],b[100007];
int fa[100007],siz[100007];
typedef long long ll;
int find(int x){
    return fa[x]==x?x:fa[x]=find(fa[x]);
}
vector<ll>res;
int main(){
    int n,m;
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++){
        fa[i]=i;
        siz[i]=1;
    }
    for(int i=0;i<m;i++)
        scanf("%d%d",&a[i],&b[i]);
    ll ans=0;
    int fx=0,fy=0;
    for(int i=m-1;i>=0;i--){
        res.push_back(1ll*n*(n-1)/2-ans);
        fx=find(a[i]);
        fy=find(b[i]);
        if(fx!=fy){
            ans+=1ll*siz[fx]*siz[fy];
            fa[fx]=fy;
            siz[fy]+=siz[fx];
        }
    }
    reverse(res.begin(),res.end());
    for(auto&it:res)
        printf("%lld\n",it);
    return 0;
}

