// https://szkopul.edu.pl/problemset/problem/kQ5ExYNkFhx3K2FvVuXAAbn4/site/?key=statement
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define uint unsigned int
constexpr int sizik = 1000 * 1001;
#define ar std::array
#define pr std::pair
#define vec std::vector
typedef long long ll;
typedef vec<vec<int>> _kra;
std::vector<int> getPrimes(int n) {
std::vector<int> r;
if (n % 2 == 0) {
r.push_back(2);
}
while (n % 2 == 0) {
n /= 2;
}
for (int i = 3; i * i <= n; i++) {
if (n % i == 0) {
r.push_back(i);
}
while (n % i == 0) {
n /= i;
}
}
if (n > 1) {
r.push_back(n);
}
return r;
}
int gcd(int a, int b) {
if (b == 0) return a;
return gcd(b, a % b);
}
int lcm(int a, int b) {
return (a * b) / (gcd(a, b));
}
int f(uint x, const std::vector<int>& primes) {
int ans = 0;
for (int i = 1; i < (1 << (primes.size())); i++) {
int temp = i, cnt = 0, local = 0, nww = 1;
std::vector<int> was;
for (int j = 0; j < primes.size(); j++) {
if (temp % 2 == 1) {
cnt++;
nww *= primes[j];
was.push_back(primes[j]);
}
temp /= 2;
}
int m = 1;
if (cnt % 2 == 0) {
m = -1;
}
local = x / nww;
ans += m * local;
}
return ans;
}
void solve() {
int n, k, c;
std::cin >> n >> k >> c;
auto primes = getPrimes(n);
uint p = k - 1, ko = INT64_MAX;
while (p < ko) {
uint s = (p + ko) / 2;
auto z = f(s, primes);
auto w = s - z;
if (w >= k) {
ko = s;
} else {
p = s + 1;
}
}
for (int i = p; c > 0; i++) {
if (gcd(i, n) == 1) {
std::cout << i << " ";
c--;
}
}
std::cout << '\n';
}
int32_t main() {
std::ios_base::sync_with_stdio(0);
std::cin.tie(0);
std::cout.tie(0);
int t = 1;
// std::cin >> t;
for (; t > 0; t--) {
solve();
}
return 0;
}