#include <bits/stdc++.h>
using namespace std;
const int NUM = 1e6 + 10;
vector<int> ma[NUM];
int vis[NUM];
long long deg[NUM];
void dfs(int now);
int main() {
  int n, m, u, v;
  long long cnt = 0;
  scanf("%d%d", &n, &m);
  for (int i = 0; i < m; i++) {
    scanf("%d%d", &u, &v);
    deg[u]++, deg[v]++;
    if (u != v) {
      ma[u].push_back(v);
      ma[v].push_back(u);
    } else
      cnt++;
  }
  for (int i = 1; i <= n; i++)
    if (ma[i].size()) {
      dfs(i);
      break;
    }
  for (int i = 1; i <= n; i++)
    if (!vis[i] && deg[i]) {
      printf("0\n");
      return 0;
    }
  long long ans = 0;
  for (int i = 0; i <= n; i++)
    ans += (long long)ma[i].size() * (ma[i].size() - 1) / 2;
  ans += cnt * (m - 1) - cnt * (cnt - 1) / 2;
  printf("%lld\n", ans);
  return 0;
}
void dfs(int now) {
  vis[now] = 1;
  for (int i = 0; i < ma[now].size(); i++) {
    if (!vis[ma[now][i]]) dfs(ma[now][i]);
  }
}
