#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
const int N = 2e3 + 5;
int n, m;
vector<int> adj[N]; // adj[u]: danh sách các đỉnh kề với u
bool vis[N]; // vis[u]: đỉnh u đã được thăm hay chưa
void dfs(int u) {
vis[u] = true;
for (int v : adj[u]) {
if (!vis[v]) dfs(v);
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> m;
for (int i = 0; i < m; i++) {
int u, v;
cin >> u >> v;
adj[u].push_back(v);
adj[v].push_back(u);
}
int num_cc = 0; // Số thành phần liên thông
for (int u = 1; u <= n; u++) {
if (!vis[u]) {
num_cc++;
dfs(u);
}
}
int ans = m - n + num_cc; // Số chu trình
cout << ans << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsgIAoKdHlwZWRlZiBsb25nIGxvbmcgbGw7ICAKdHlwZWRlZiBwYWlyPGludCwgaW50PiBpaTsgIAoKY29uc3QgaW50IElORiA9IDFlOTsgIApjb25zdCBsbCBMSU5GID0gMWUxODsgIAoKY29uc3QgaW50IE4gPSAyZTMgKyA1OyAKCmludCBuLCBtOyAgCnZlY3RvcjxpbnQ+IGFkaltOXTsgLy8gYWRqW3VdOiBkYW5oIHPDoWNoIGPDoWMgxJHhu4luaCBr4buBIHbhu5tpIHUgICAKCmJvb2wgdmlzW05dOyAvLyB2aXNbdV06IMSR4buJbmggdSDEkcOjIMSRxrDhu6NjIHRoxINtIGhheSBjaMawYQoJCnZvaWQgZGZzKGludCB1KSB7Cgl2aXNbdV0gPSB0cnVlOyAgCgkKCWZvciAoaW50IHYgOiBhZGpbdV0pIHsKCQlpZiAoIXZpc1t2XSkgZGZzKHYpOyAKCX0KfQoKaW50IG1haW4oKSB7Cglpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IAoJY2luLnRpZShudWxscHRyKTsgCQoJY2luID4+IG4gPj4gbTsgIAoJZm9yIChpbnQgaSA9IDA7IGkgPCBtOyBpKyspIHsKCQlpbnQgdSwgdjsgCgkJY2luID4+IHUgPj4gdjsgCgkJYWRqW3VdLnB1c2hfYmFjayh2KTsgCgkJYWRqW3ZdLnB1c2hfYmFjayh1KTsgCgl9CgoJaW50IG51bV9jYyA9IDA7IC8vIFPhu5EgdGjDoG5oIHBo4bqnbiBsacOqbiB0aMO0bmcgIAoJZm9yIChpbnQgdSA9IDE7IHUgPD0gbjsgdSsrKSB7CgkJaWYgKCF2aXNbdV0pIHsKCQkJbnVtX2NjKys7ICAKCQkJZGZzKHUpOyAKCQl9Cgl9CgoJaW50IGFucyA9IG0gLSBuICsgbnVtX2NjOyAvLyBT4buRIGNodSB0csOsbmggCgoJY291dCA8PCBhbnMgPDwgJ1xuJzsgCn0=