#include using namespace std; int n, m, x, y, ans, f[100005]; int find(int x) { if (f[x] == x) return x; return f[x] = find(f[x]); } void unity(int x, int y) { f[find(x)] = find(y); } int main() { while (cin >> n, n) { ans = 0; cin >> m; for (int i = 1; i <= n; i++) { f[i] = i; } for (int i = 1; i <= m; i++) { cin >> x >> y; unity(x, y); } for (int i = 1; i <= n; i++) { if (find(i) == i) ans++; } cout << --ans << endl; } return 0; }