
#include <cstdio>
using namespace std;
const int MAX = 100;
void dfs(int start);
int mat[MAX][MAX];
int visited[MAX];
int cnt = 0;
int n, m;
int main() {
int i, j, a, b;
scanf("%d", &n);
scanf("%d", &m);
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
mat[i][j] = 0;
}
visited[i] = 0;
}
for (i = 0; i < m; i++) {
scanf("%d %d", &a, &b);
mat[a - 1][b - 1] = 1;
mat[b - 1][a - 1] = 1;
}
visited[0] = 1;
for (i = 0; i < n; i++) {
if (mat[0][i] && !visited[i]) {
cnt++;
dfs(i);
}
}
printf("%d", cnt);
return 0;
}
void dfs(int start) {
int i, j;
visited[start] = 1;
for (i = 0; i < n; i++) {
if (mat[start][i] && !visited[i] && (i != start)) {
cnt++;
dfs(i);
}
}
}