#include <iostream>
#include <vector>
int main()
{
unsigned n;
std::cin >> n;
std::vector<unsigned> Primes(n >= 1, 2);
for(unsigned Candidate = 3; Primes.size() < n; ++Candidate)
{
bool IsPrime = true;
for(unsigned Divisor = 2; Divisor * Divisor <= Candidate; ++Divisor)
{
if(Candidate % Divisor == 0)
{
IsPrime = false;
break;
}
}
if(IsPrime)
{
Primes.push_back(Candidate);
}
}
for(std::size_t i = 0; i < Primes.size(); ++i)
{
std::cout << Primes[i] << '\n';
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPiAKI2luY2x1ZGUgPHZlY3Rvcj4gCmludCBtYWluKCkgCnsgCiAgICB1bnNpZ25lZCBuOyAKICAgIHN0ZDo6Y2luID4+IG47IAogICAgc3RkOjp2ZWN0b3I8dW5zaWduZWQ+IFByaW1lcyhuID49IDEsIDIpOyAKICAgIGZvcih1bnNpZ25lZCBDYW5kaWRhdGUgPSAzOyBQcmltZXMuc2l6ZSgpIDwgbjsgKytDYW5kaWRhdGUpIAogICAgeyAKICAgICAgICBib29sIElzUHJpbWUgPSB0cnVlOyAKICAgICAgICBmb3IodW5zaWduZWQgRGl2aXNvciA9IDI7IERpdmlzb3IgKiBEaXZpc29yIDw9IENhbmRpZGF0ZTsgKytEaXZpc29yKSAKICAgICAgICB7IAogICAgICAgICAgICBpZihDYW5kaWRhdGUgJSBEaXZpc29yID09IDApIAogICAgICAgICAgICB7IAogICAgICAgICAgICAgICAgSXNQcmltZSA9IGZhbHNlOyAKICAgICAgICAgICAgICAgIGJyZWFrOyAKICAgICAgICAgICAgfSAKICAgICAgICB9IAogICAgICAgIGlmKElzUHJpbWUpIAogICAgICAgIHsgCiAgICAgICAgICAgIFByaW1lcy5wdXNoX2JhY2soQ2FuZGlkYXRlKTsgCiAgICAgICAgfSAKICAgIH0gCiAgICBmb3Ioc3RkOjpzaXplX3QgaSA9IDA7IGkgPCBQcmltZXMuc2l6ZSgpOyArK2kpIAogICAgeyAKICAgICAgICBzdGQ6OmNvdXQgPDwgUHJpbWVzW2ldIDw8ICdcbic7IAogICAgfSAKfQ==