import sys
input=sys.stdin.readline #文字列入力はするな！！



n,m=map(int,input().split())
ab=[[0,0] for i in range(m)]
for i in range(m):
    ab[i][0],ab[i][1]=map(int,input().split())


sys.setrecursionlimit(10**9) #再帰の上限をあげる

root=[-1 for i in range(n+1)] #自分が親なら自身の番号を、そうでないなら（元）親の番号を示す
def r(x):   #親は誰？
    if root[x]<0:
        return x
    else:
        root[x]=r(root[x])
        return root[x]


ans=n*(n-1)//2
d=[n*(n-1)//2]
for i in range(1,m+1):
    a,b=ab[-i][0],ab[-i][1]
    a=r(a)
    b=r(b)
    a,b=min(a,b),max(a,b)
    if a!=b:
        ans-=root[a]*root[b]
        root[a]+=root[b]
        root[b]=a
    d.append(ans)

for i in range(m):
    print(d[-2-i]) import sys sys input=sys.stdin.readline input sys.stdin.readline sys.stdin sys stdin readline n,m=map(int,input().split()) n map(int,input().split()) map int input().split() ().split () input split m [0,0] for i in range(m) for i in range(m) i range(m) range m for i in range(m) [0,0] 0 0 ab=[[0,0] for i in range(m)] ab [[0,0] for i in range(m)] for i in range(m):
    ab[i][0],ab[i][1]=map(int,input().split()) i range(m) range m ab[i][0],ab[i][1]=map(int,input().split()) ab[i][0] [i] ab i 0 map(int,input().split()) map int input().split() ().split () input split ab[i][1] [i] ab i 1 sys.setrecursionlimit(10**9) sys.setrecursionlimit sys setrecursionlimit 10**9 10 9 -1 for i in range(n+1) for i in range(n+1) i range(n+1) range n+1 n 1 for i in range(n+1) -1 root=[-1 for i in range(n+1)] root [-1 for i in range(n+1)] def r(x):   #親は誰？
    if root[x]<0:
        return x
    else:
        root[x]=r(root[x])
        return root[x] r if root[x]<0:
        return x
    else:
        root[x]=r(root[x])
        return root[x] root[x]<0 root[x] root x 0 return x x root[x]=r(root[x]) root[x] root x r(root[x]) r root[x] root x return root[x] root[x] root x x x ans=n*(n-1)//2 ans n*(n-1)//2 n*(n-1) n n-1 n 1 2 d=[n*(n-1)//2] d [n*(n-1)//2] n*(n-1)//2 n*(n-1) n n-1 n 1 2 for i in range(1,m+1):
    a,b=ab[-i][0],ab[-i][1]
    a=r(a)
    b=r(b)
    a,b=min(a,b),max(a,b)
    if a!=b:
        ans-=root[a]*root[b]
        root[a]+=root[b]
        root[b]=a
    d.append(ans) i range(1,m+1) range 1 m+1 m 1 a,b=ab[-i][0],ab[-i][1] a ab[-i][0] [-i] ab -i i 0 b ab[-i][1] [-i] ab -i i 1 a=r(a) a r(a) r a b=r(b) b r(b) r b a,b=min(a,b),max(a,b) a min(a,b) min a b b max(a,b) max a b if a!=b:
        ans-=root[a]*root[b]
        root[a]+=root[b]
        root[b]=a
     a!=b a b ans-=root[a]*root[b] ans root[a]*root[b] root[a] root a root[b] root b root[a]+=root[b] root[a] root a root[b] root b root[b]=a root[b] root b a d.append(ans) d.append d append ans for i in range(m):
    print(d[-2-i]) i range(m) range m print(d[-2-i]) print d[-2-i] d -2-i -2 i a,b=ab[-i][0],ab[-i][1] ab[-i][0] a b=r(b) r(b) b b=ab[-i][0],ab[-i][1] ab[-i][1] b b=min(a,b),max(a,b) max(a,b) b ab=[[0,0] for i in range(m)] [[0,0] for i in range(m)] ab ans=n*(n-1)//2 n*(n-1)//2 ans input=sys.stdin.readline sys.stdin.readline input n,m=map(int,input().split()) map(int,input().split()) n d=[n*(n-1)//2] [n*(n-1)//2] d root=[-1 for i in range(n+1)] [-1 for i in range(n+1)] root ans-=root[a]*root[b] root[a]*root[b] ans a=r(a) r(a) a a,b=min(a,b),max(a,b) min(a,b) a m=map(int,input().split()) map(int,input().split()) m def r(x):   #親は誰？
    if root[x]<0:
        return x
    else:
        root[x]=r(root[x])
        return root[x] def r(x):   #親は誰？
    if root[x]<0:
        return x
    else:
        root[x]=r(root[x])
        return root[x] r
import sys
input=sys.stdin.readline #文字列入力はするな！！



n,m=map(int,input().split())
ab=[[0,0] for i in range(m)]
for i in range(m):
    ab[i][0],ab[i][1]=map(int,input().split())


sys.setrecursionlimit(10**9) #再帰の上限をあげる

root=[-1 for i in range(n+1)] #自分が親なら自身の番号を、そうでないなら（元）親の番号を示す
def r(x):   #親は誰？
    if root[x]<0:
        return x
    else:
        root[x]=r(root[x])
        return root[x]


ans=n*(n-1)//2
d=[n*(n-1)//2]
for i in range(1,m+1):
    a,b=ab[-i][0],ab[-i][1]
    a=r(a)
    b=r(b)
    a,b=min(a,b),max(a,b)
    if a!=b:
        ans-=root[a]*root[b]
        root[a]+=root[b]
        root[b]=a
    d.append(ans)

for i in range(m):
    print(d[-2-i])
