#include <bits/stdc++.h>
using namespace std;
int color[111];
bool vis[111];
int sm = 0;
set<pair<int, int> > st;
vector<vector<int> > v;
void dfs(int u, int p, int pc) {
  if (vis[u]) {
    if (color[u] == pc) {
      int mn = min(u, p);
      int mx = max(u, p);
      st.insert(make_pair(mn, mx));
    }
    return;
  }
  vis[u] = 1;
  if (pc)
    color[u] = 0;
  else
    color[u] = 1;
  for (int i = 0; i < v[u].size(); i++) {
    int vv = v[u][i];
    if (vv != p) dfs(vv, u, color[u]);
  }
}
int main() {
  int n, m;
  scanf("%d %d", &n, &m);
  v.resize(n);
  for (int i = 0; i < m; i++) {
    int x, y;
    scanf("%d %d", &x, &y);
    x--, y--;
    v[x].push_back(y);
    v[y].push_back(x);
  }
  for (int i = 0; i < n; i++) {
    if (!vis[i]) {
      dfs(i, 0, -1);
    }
  }
  if (((n - st.size()) & 1))
    printf("%d", st.size() + 1);
  else
    printf("%d", st.size());
  return 0;
}
