OI XV - blo

// https://szkopul.edu.pl/problemset/problem/JkT6CwdepjCQnJ9c6CwxHolZ/site/?key=statement

// Zadanie Blokada

#include <bits/stdc++.h>

// #define GARY_DBG
#define GARY_LIB

#define int int64_t

constexpr int sizik = 100 * 1001;

#define ar std::array

typedef std::vector<std::vector<int>> _kra;

std::vector<int> kra[sizik];
int cnt = 0;
int disc[sizik], low[sizik];
int dp_sz[sizik];

std::bitset<sizik> ap;
int ans[sizik];
int n, m;
std::vector<int> components_left[sizik];

void DFS(int v, int p) {
    int children = 0, sum_sz = 0;
    disc[v] = low[v] = ++cnt;
    dp_sz[v] = 1;
    ap[v] = 0;
    for (const auto& u : kra[v]) {
        if (u == p) continue;
        if (disc[u] != -1) {
            low[v] = std::min(low[v], disc[u]);
        } else {
            children++;
            DFS(u, v);
            dp_sz[v] += dp_sz[u];
            low[v] = std::min(low[v], low[u]);
            if (low[u] >= disc[v]) {
                components_left[v].push_back(dp_sz[u]);
                sum_sz += dp_sz[u];
                children++;
            }
        }
    }
    if (p == -1) {
        if (children > 1) {
            ap[v] = 1;
        } else {
            components_left[v].clear();
            if (n > 1) components_left[v].push_back(n - 1);
            ap[v] = 0;
        }
    } else {
        if (!components_left[v].empty()) {
            ap[v] = 1;
            int upper_part = n - 1 - sum_sz;
            if (upper_part > 0) {
                components_left[v].push_back(upper_part);
            }
        } else {
            if (n > 1) components_left[v].push_back(n - 1);
        }
    }
}

void solve() {
    std::cin >> n >> m;

    for (int i = 1; i <= m; i++) {
        int a, b;
        std::cin >> a >> b;

        kra[a].push_back(b);
        kra[b].push_back(a);
    }

    for (int i = 1; i <= n; i++) {
        disc[i] = low[i] = -1;
    }
    DFS(1, -1);
    for (int i = 1; i <= n; i++) {
        ans[i] = n * (n - 1);
        for (const auto& a : components_left[i]) {
            ans[i] -= a * (a - 1);
        }
    }
    for (int i = 1; i <= n; i++) {
        std::cout << ans[i] << '\n';
    }
}

int32_t main() {
#ifndef GARY_DBG
    std::ios_base::sync_with_stdio(0);
    std::cin.tie(0);
    std::cout.tie(0);
#endif

    int t = 1;
    // std::cin >> t;

    for (; t > 0; t--) {
        solve();
    }

    return 0;
}