#include <bits/stdc++.h>
#include <regex>
#include <array>
#include <unordered_set>
#include <future>
using namespace std;

using li = long long;
using vi = vector<li>;
using pi = pair<li, li>;
using vpi = vector<pi>;
using vvi = vector<vector<li>>;
using vvpi = vector<vpi>;
using ld = long double;

#define forn(i,n) for (li i = 0;i < li(n);i++)
#define ford(i,n) for (li i = li(n)-1;i >=0;i--)
#define fore(i,l,r) for (li i = li(l);i < li(r);i++)
#define forv(v,arr) for (auto& v : (arr))
#define all(a) (a).begin(),(a).end()

using Point = complex<li>;

istream& operator>>(istream& in, vi& a)
{
	forv(v, a)
		in >> v;
	return in;
}
ostream& operator<<(ostream& out, vi& a)
{
	forv(v, a)
		out << v << " ";
	return out;
}

ostream& operator<<(ostream& out, vi&& a)
{
	forv(v, a)
		out << v << " ";
	return out;
}

li gcd(li a, li b)
{
	return b ? gcd(b, a % b) : a;
}

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int n;
	cin >> n;
	vi res;
	li pr = 1;
	fore(v, 1, n + 1)
	{
		if (gcd(v, n) != 1)
			continue;
		res.push_back(v);
		pr = (pr * v) % n;
	}
	if (pr != 1)
		res.erase(find(all(res), pr));
	cout << res.size() << endl << res << endl;
}