1 #include <iostream>
2 #include <map>
3 #include <cstring>
4 #include <cstdio>
5
6 using namespace std;
7
8 int father[1010];
9 int num[1010];
10
11 int main()
12 {
13 int n,m;
14 while(cin>>n>>m)
15 {
16 int a,b;
17 for(int i=1;i<=1000;i++)
18 father[i]=i;
19 for(int i=1;i<=1000;i++)
20 num[i]=1;
21 for(int i=0;i<m;i++)
22 {
23 scanf("%d%d",&a,&b);
24 int fa=a;
25 int fb=b;
26 while(fa!=father[fa])
27 {
28 fa=father[fa];
29 }
30 while(fb!=father[fb])
31 {
32 fb=father[fb];
33 }
34 int tmp=a;
35 while(tmp!=fa)
36 {
37 int l=father[tmp];
38 father[tmp]=fa;
39 tmp=l;
40 }
41 int tmpb=b;
42 while(tmpb!=fb)
43 {
44 int l=father[tmpb];
45 father[tmpb]=fb;
46 tmpb=l;
47 }
48 if(fa!=fb)
49 {
50 father[fb]=fa;
51 num[fa]=num[fa]+num[fb];
52 num[fb]=0;
53 }
54 }
55 int ans=0;
56 int tmpn=n;
57 for(int i=1;i<=n;i++)
58 {
59 if(num[i])
60 {
61 ans++;
62 tmpn-=num[i];
63 }
64 }
65 ans=ans+tmpn-1;
66 cout<<ans<<endl;
67 }
68 return 0;
69 }