#include <algorithm>
#include <iostream>
#include <vector>
#include <iomanip>
#include <cmath>
#include <ctime>
#include <queue>
#include <set>
#include <map>
#include <stack>
#define int long long
#define sz(x) (int)x.size()
#define forn (i, n) for (int i = 0; i < (n); ++i)
#define all(x) begin(x), end(x)
using namespace std;

int gcd(int a, int b) {
	return (b == 0) ? a : gcd(b, a % b);
}
int32_t main() {
	ios_base::sync_with_stdio(0);
	int n;
	cin >> n;	
	int ans = 1;
	vector<int> vec;
	for (int i = 1; i < n; ++i) {
		if (gcd(n, i) == 1) {
			vec.push_back(i);
			ans = ans * i % n;
		}
	}
	if (ans != 1) {
		for (int i = 0; i < sz(vec); ++i) {
			if (vec[i] == ans) {
				vec.erase(vec.begin() + i);
				break;
			}
		}
	}
	cout << sz(vec) << endl;
	for (auto& e : vec) {
		cout << e << " ";
	}
}
/*
 7 3
1 2 1 3 1 2 1

*/