#include using namespace std; int main() { int N, M, Odd = 0; cin >> N >> M; vector seen(2 * N + 1); vector> Graph(2 * N + 1); for (int i = 0; i < M; i++) { int A, B; cin >> A >> B; Graph.at(A).push_back(B); Graph.at(B).push_back(A); } for (int i = 1; i <= 2 * N; i++) { if (seen.at(i)) continue; int Count = 0; auto DFS = [&](auto DFS, int x) { if(seen.at(x)) return; seen.at(x) = true; Count++; for (int to : Graph.at(x)) DFS(DFS, to); }; DFS(DFS, i); if (Count % 2) Odd++; } cout << Odd / 2 << endl; }