/* HDU 1232 */

来源:互联网 发布:c二维数组初始化为0 编辑:程序博客网 时间:2024/06/09 13:52
/* HDU 1232 */


#include <stdio.h>


int fa[1100];
int kind[1100],tot;


int Find(int x) {   // 查询这个点属于哪个集合
    return fa[x] = (x == fa[x]) ? x : Find(fa[x]); 
}


void merge(int a, int b) {  // 连接这两个点
    a = Find(a);
    b = Find(b);
    if(a == b) return ;     // 如果他们属于同一个集合,就不需要再连接了
    fa[a] = b;
}


int exist(int x) {
    for(int i=0; i<tot; i++) if(kind[i] == x) return 1;
    return 0;
}


int main() {
    while(~scanf("%d%d", &n, &m)) {
        for(int i=1; i<=n; i++) fa[i] = i;
        int a,b;
        while(m--) {
            scanf("%d%d", &a ,&b);
            merge(a,b);
        }
        tot = 0;
        for(int i=1; i<=n; i++) {
            if(!exist(Find(i))) kind[tot ++] = Find[i];
        }


        printf("%d\n", tot);
    }
    return 0;
}