#include <bits/stdc++.h>
using namespace std;
int n, m, sm[100005], tg[100005], sz[100005], fa[100005];
int to[100005 * 2], fst[100005], nxt[100005 * 2], l;
void biu() {
  puts("-1");
  exit(0);
}
void link(int x, int y) {
  to[++l] = y;
  nxt[l] = fst[x];
  fst[x] = l;
  to[++l] = x;
  nxt[l] = fst[y];
  fst[y] = l;
}
void dfs(int x) {
  sm[x] = tg[x] = tg[fa[x]] ^ 1;
  sz[x] = 1;
  for (int i = fst[x]; i; i = nxt[i])
    if (to[i] != fa[x]) {
      fa[to[i]] = x;
      dfs(to[i]);
      sm[x] += sm[to[i]];
      sz[x] += sz[to[i]];
    }
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= m; i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    link(x, y);
  }
  if (m == n - 1) {
    dfs(1);
    if (sm[1] * 2 != n) biu();
    int Ans = 0;
    for (int i = 2; i <= n; i++) Ans += abs(sm[i] * 2 - sz[i]);
    printf("%d\n", Ans);
  } else {
  }
}
