{$M 4000000000}
const maxn = 2000;
      maxm = 5000;
      fi = '';
      fo = '';
var m,n,t:word;
    a: array[1..maxn,0..maxm] of word;
    visit: array[1..maxn] of boolean;
procedure enter;
var i,j,u,v:word;
begin
  assign(input,fi);
  reset(input);
  readln(n,m);
  for i:=1 to n do
  begin
    a[i,0]:=0;
    visit[i]:=false;
  end;
  for i:=1 to m do
  begin
    readln(u,v);
    inc(a[u,0]);
    a[u,a[u,0]]:=v;
    inc(a[v,0]);
    a[v,a[v,0]]:=u;
  end;
end;
procedure dfs(i:word);
var j:word;
begin
  visit[i]:=true;
  for j:=1 to a[i,0] do
  if not visit[a[i,j]] then dfs(a[i,j]);
end;
procedure solve;
var i:word;
begin
  assign(output,fo);
  rewrite(output);
  t:=0;
  for i:=1 to n do
  if not visit[i] then
  begin
    inc(t);
    dfs(i);
  end;
  writeln(m-n+t);
  close(output);
end;
begin
  enter;
  solve;
end.