#include <bits/stdc++.h>
const double EPS = 1e-6;
using namespace std;
vector<int> a[1000];
int c[1000];
bool used[1000];
bool inloop[1000];
int ans;
int n, m;
void dfs(int v, int col, int pr = -1) {
  if (used[v]) {
    ans += (int)(c[v] != col);
    inloop[v] = 1;
    return;
  }
  used[v] = 1;
  c[v] = col;
  for (int i = 0; i < a[v].size(); i++) {
    if (a[v][i] != pr) dfs(a[v][i], !col, v);
    if (inloop[v]) break;
  }
}
int main() {
  cin >> n >> m;
  for (int i = 0; i < m; i++) {
    int k1, k2;
    cin >> k1 >> k2;
    a[k1 - 1].push_back(k2 - 1);
    a[k2 - 1].push_back(k1 - 1);
  }
  ans = 0;
  for (int i = 0; i < n; i++) {
    if (!used[i]) dfs(i, 0);
  }
  if ((n - ans) % 2) ans++;
  cout << ans;
  return 0;
}
