import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone
{
static int t1, t2;
static int[][] graph;
static boolean[] visit;
private static void dfs(int x){
if(visit[x]){
return;
}
visit[x] = true;
for (int i =0;i<=t1;i++){
if(graph[x][i] == 1){
dfs(i);
}
}
}
{
t1
= Integer.
parseInt(st.
nextToken()); t2
= Integer.
parseInt(st.
nextToken()); int res = 0;
graph = new int[t1+1][t1+1];
visit = new boolean[t1+1];
for(int i=0;i<t2;i++){
int u
= Integer.
parseInt(st.
nextToken()); int v
= Integer.
parseInt(st.
nextToken());
graph[u][v] = 1;
graph[v][u] = 1;
}
for(int i=1;i <= t1;i++){
if(!visit[i]){
res++;
dfs(i);
}
}
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgoKY2xhc3MgSWRlb25lCnsJCgoJc3RhdGljIGludCB0MSwgdDI7CglzdGF0aWMgaW50W11bXSBncmFwaDsKCXN0YXRpYyBib29sZWFuW10gdmlzaXQ7CgkKCXByaXZhdGUgc3RhdGljIHZvaWQgZGZzKGludCB4KXsKCQlpZih2aXNpdFt4XSl7CgkJCXJldHVybjsJCgkJfQoJCQoJCXZpc2l0W3hdID0gdHJ1ZTsKCQlmb3IgKGludCBpID0wO2k8PXQxO2krKyl7CgkJICBpZihncmFwaFt4XVtpXSA9PSAxKXsKCQkgIAlkZnMoaSk7CgkJICB9CgkJfQoJCQoJfQoKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCUJ1ZmZlcmVkUmVhZGVyIGJyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBJbnB1dFN0cmVhbVJlYWRlcihTeXN0ZW0uaW4pKTsKCSAgICBTdHJpbmdUb2tlbml6ZXIgc3QgPSBuZXcgU3RyaW5nVG9rZW5pemVyKGJyLnJlYWRMaW5lKCkpOwoJICAgIAoJICAgIHQxID0gSW50ZWdlci5wYXJzZUludChzdC5uZXh0VG9rZW4oKSk7CgkgICAgdDIgPSBJbnRlZ2VyLnBhcnNlSW50KHN0Lm5leHRUb2tlbigpKTsKCQlpbnQgcmVzID0gMDsKCQkKCQlncmFwaCA9IG5ldyBpbnRbdDErMV1bdDErMV07CgkJdmlzaXQgPSBuZXcgYm9vbGVhblt0MSsxXTsKCQkKCgkgICAgZm9yKGludCBpPTA7aTx0MjtpKyspewoJICAgIAlzdCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoYnIucmVhZExpbmUoKSk7CgkgICAgCWludCB1ID0gSW50ZWdlci5wYXJzZUludChzdC5uZXh0VG9rZW4oKSk7CgkgICAgCWludCB2ID0gSW50ZWdlci5wYXJzZUludChzdC5uZXh0VG9rZW4oKSk7CgkgICAgCQoJICAgIAlncmFwaFt1XVt2XSA9IDE7CgkgICAgCWdyYXBoW3ZdW3VdID0gMTsKCSAgICB9CgkgICAgCgkgICAgZm9yKGludCBpPTE7aSA8PSB0MTtpKyspewoJICAgIAlpZighdmlzaXRbaV0pewoJICAgIAkJcmVzKys7CgkgICAgCQlkZnMoaSk7CgkgICAgCX0KCSAgICB9CgkgICAgCgkgICAgU3lzdGVtLm91dC5wcmludGxuKHJlcyk7CgkgICAgCgoJICAgIAoKCX0KCQoJCn0=